scripts-add-new-skills
#!/usr/bin/env python3 """
title: "Get script directory for path resolution (works from any cwd)" component_type: script version: "1.0.0" audience: contributor status: stable summary: "Add 13 new specialized intelligence skills to component activation status" keywords: ['add', 'analysis', 'new', 'optimization', 'skills'] tokens: ~500 created: 2025-12-22 updated: 2025-12-22 script_name: "add-new-skills.py" language: python executable: true usage: "python3 scripts/add-new-skills.py [options]" python_version: "3.10+" dependencies: [] modifies_files: false network_access: false requires_auth: false
Add 13 new specialized intelligence skills to component activation status"""
import json from datetime import datetime, timezone from pathlib import Path
Get script directory for path resolution (works from any cwd)
SCRIPT_DIR = Path(file).resolve().parent CORE_ROOT = SCRIPT_DIR.parent
New skills to add
NEW_SKILLS = [ { "name": "llm-research-patterns", "path": "skills/llm-research-patterns/SKILL.md", "description": "Web research, documentation curation, source validation" }, { "name": "research-patterns", "path": "skills/research-patterns/SKILL.md", "description": "Technical research, library comparison, best practices" }, { "name": "memory-context-patterns", "path": "skills/memory-context-patterns/SKILL.md", "description": "Context injection, memory retrieval, session continuity" }, { "name": "memory-optimization-patterns", "path": "skills/memory-optimization-patterns/SKILL.md", "description": "Token reduction, context compression, summarization" }, { "name": "thoughts-analysis-patterns", "path": "skills/thoughts-analysis-patterns/SKILL.md", "description": "Research document analysis, insight extraction" }, { "name": "competitive-analysis", "path": "skills/competitive-analysis/SKILL.md", "description": "Market research, competitor analysis, SWOT" }, { "name": "content-marketing-patterns", "path": "skills/content-marketing-patterns/SKILL.md", "description": "Technical content, developer relations, blog posts" }, { "name": "educational-content-patterns", "path": "skills/educational-content-patterns/SKILL.md", "description": "Multi-level content, pedagogical patterns, tutorials" }, { "name": "novelty-detection-patterns", "path": "skills/novelty-detection-patterns/SKILL.md", "description": "Situation assessment, adaptive response, anomaly detection" }, { "name": "uncertainty-quantification-patterns", "path": "skills/uncertainty-quantification-patterns/SKILL.md", "description": "UQ frameworks, MoE judges, confidence scoring" }, { "name": "prompt-analysis-patterns", "path": "skills/prompt-analysis-patterns/SKILL.md", "description": "Multi-dimensional prompt analysis, optimization" }, { "name": "session-analysis-patterns", "path": "skills/session-analysis-patterns/SKILL.md", "description": "Session indexing, development insights, pattern extraction" }, { "name": "document-merging", "path": "skills/document-merging/SKILL.md", "description": "Conflict detection, intelligent merging, diff resolution" }, ]
def main(): # Load current activation status activation_file = CORE_ROOT / ".coditect" / "component-activation-status.json"
with open(activation_file, 'r') as f:
data = json.load(f)
# Get current components
components = data['components']
existing_names = {c['name'] for c in components}
# Add new skills
added_count = 0
now = datetime.now(timezone.utc).isoformat()
for skill in NEW_SKILLS:
if skill['name'] not in existing_names:
components.append({
"type": "skill",
"name": skill['name'],
"path": skill['path'],
"activated": True,
"version": "1.0.0",
"status": "operational",
"reason": f"Specialized Intelligence & Content - {skill['description']}",
"activated_at": now
})
added_count += 1
print(f"Added: {skill['name']}")
# Update summary
data['components'] = components
data['activation_summary']['total_components'] = len(components)
data['activation_summary']['activated'] = sum(1 for c in components if c.get('activated'))
data['activation_summary']['last_updated'] = now
data['last_updated'] = now
# Save
with open(activation_file, 'w') as f:
json.dump(data, f, indent=2)
print(f"\n✓ Added {added_count} new skills")
print(f"✓ Total components: {len(components)}")
print(f"✓ Updated: {activation_file}")
if name == 'main': main()