UNPKG

claude-flow-novice

Version:

Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes CodeSearch (hybrid SQLite + pgvector), mem0/memgraph specialists, and all CFN skills.

367 lines (300 loc) 10.1 kB
# Propagate Skill Update - Quick Reference ## Overview `propagate-skill-update.sh` enables Phase 4 Edge Case Tracker to propagate approved skill improvements back to the Skills Database with proper version management and audit trails. ## Usage ```bash ./.claude/skills/workflow-codification/propagate-skill-update.sh \ SKILL_NAME \ NEW_VERSION \ UPDATE_PATH \ [CHANGE_TYPE] \ [NOTIFY_AGENTS] ``` ## Parameters | Parameter | Required | Default | Description | |-----------|----------|---------|-------------| | SKILL_NAME | Yes | - | Skill identifier (e.g., "jwt-authentication") | | NEW_VERSION | Yes | - | Semantic version (e.g., "1.0.1", "1.1.0", "2.0.0") | | UPDATE_PATH | Yes | - | Path to updated skill markdown file | | CHANGE_TYPE | No | patch | Version change type: patch\|minor\|major | | NOTIFY_AGENTS | No | false | Notify affected agents: true\|false | ## Change Types ### Patch (Bug Fix) **Example:** 1.0.0 → 1.0.1 ```bash ./.claude/skills/workflow-codification/propagate-skill-update.sh \ "jwt-authentication" \ "1.0.1" \ ".claude/skills/auth/jwt-auth-v1.0.1.md" \ "patch" \ "true" ``` **Use When:** - Fixing bugs or errors - Improving documentation clarity - Optimizing performance without API changes - Correcting edge case handling ### Minor (New Feature) **Example:** 1.0.0 → 1.1.0 ```bash ./.claude/skills/workflow-codification/propagate-skill-update.sh \ "jwt-authentication" \ "1.1.0" \ ".claude/skills/auth/jwt-auth-v1.1.0.md" \ "minor" \ "true" ``` **Use When:** - Adding new functionality - Enhancing existing features - Adding backward-compatible improvements - Expanding skill capabilities ### Major (Breaking Change) **Example:** 1.0.0 → 2.0.0 ```bash ./.claude/skills/workflow-codification/propagate-skill-update.sh \ "jwt-authentication" \ "2.0.0" \ ".claude/skills/auth/jwt-auth-v2.0.0.md" \ "major" \ "true" ``` **Use When:** - Breaking API compatibility - Fundamental architecture changes - Removing deprecated features - Complete skill redesigns ## Exit Codes | Code | Meaning | Description | |------|---------|-------------| | 0 | Success | Skill updated successfully | | 1 | Invalid Parameters | Missing or invalid input parameters | | 2 | File Not Found | UPDATE_PATH file doesn't exist | | 3 | Skill Not Found | Skill doesn't exist in database | | 4 | Invalid Version | Version downgrade, same version, or type mismatch | | 5 | Content Unchanged | No actual content changes (hash identical) | | 6 | Database Error | SQLite operation failed | ## Environment Variables ```bash # Skills Database (SQLite - required) export CFN_SKILLS_DB_PATH="./.claude/skills-database/skills.db" # Phase 4 PostgreSQL Integration (optional) export PHASE4_POSTGRES_HOST="localhost" export PHASE4_POSTGRES_DB="workflow_codification" export PHASE4_POSTGRES_USER="cfn_user" export PHASE4_POSTGRES_PASS="secure_password" # Agent Notifications (optional) export ENABLE_AGENT_NOTIFICATIONS="true" ``` ## Phase 4 Integration Workflow ### 1. Edge Case Detection Phase 4 Edge Case Tracker detects skill improvement opportunity: ```bash # Phase 4 detects pattern deviation in agent execution ./.claude/skills/workflow-codification/track-edge-case.sh \ --skill-name "jwt-authentication" \ --issue "Missing refresh token validation" \ --severity "medium" ``` ### 2. Expert Review & Approval Human expert reviews and approves the improvement: ```bash # Expert approves edge case fix ./.claude/skills/workflow-codification/approval-workflow.sh \ --edge-case-id 42 \ --decision "approved" \ --expert "security@example.com" ``` ### 3. Skill Update Generation Phase 4 generates updated skill content: ```bash # Generate updated skill with fix ./.claude/skills/workflow-codification/generate-skill-update.sh \ --skill-name "jwt-authentication" \ --edge-case-id 42 \ --output ".claude/skills/auth/jwt-auth-v1.0.1.md" ``` ### 4. Propagate to Skills DB **This script** propagates the approved update: ```bash # Propagate approved update to Skills Database ./.claude/skills/workflow-codification/propagate-skill-update.sh \ "jwt-authentication" \ "1.0.1" \ ".claude/skills/auth/jwt-auth-v1.0.1.md" \ "patch" \ "true" ``` ### 5. Agent Reload Agents reload the updated skill on next invocation: ```bash # Agent detects version update via SkillLoader # Automatically reloads skill content # No manual intervention required ``` ## Validation Rules ### Semantic Versioning - **Format:** MAJOR.MINOR.PATCH (e.g., 2.1.3) - **No downgrades:** 1.1.0 → 1.0.0 ❌ - **No duplicates:** 1.0.0 → 1.0.0 ❌ - **Type matching:** Major change requires change_type="major"### Version Change Type Validation | Current | New | Expected Type | Valid? | |---------|-----|---------------|--------| | 1.0.0 | 1.0.1 | patch | ✅ | | 1.0.0 | 1.1.0 | minor | ✅ | | 1.0.0 | 2.0.0 | major | ✅ | | 1.0.0 | 2.0.0 | patch | ❌ Type mismatch | | 1.0.0 | 1.1.0 | major | ❌ Type mismatch | | 1.1.0 | 1.0.0 | any | ❌ Downgrade | ### Content Hash Validation - **Must differ:** New content hash must be different from current - **SHA256:** Content integrity verified via SHA256 hash - **Idempotent:** Re-running with same content returns exit code 5 ## Database Changes ### Skills Table Update ```sql UPDATE skills SET version = '1.0.1', content_hash = 'sha256_hash_of_new_content', content_path = '.claude/skills/auth/jwt-auth-v1.0.1.md', updated_at = datetime('now') WHERE name = 'jwt-authentication'; ``` ### Approval History Record ```sql INSERT INTO approval_history ( skill_id, version, approval_level, approver, decision, reasoning ) VALUES ( 42, '1.0.1', 'auto', 'phase4-edge-case-tracker', 'approved', 'Edge case update propagated from Phase 4 after expert review and validation' ); ``` ## Agent Notification When `NOTIFY_AGENTS=true`, the script lists all agents using the skill: ``` [INFO] Agents using this skill (3): - backend-developer - api-designer - security-specialist [SUCCESS] Notification: Skill 'jwt-authentication' updated from 1.0.0 to 1.0.1 (patch) [INFO] Affected agents should reload skill content on next invocation ``` ## Error Handling Examples ### Invalid Version Format ```bash $ propagate-skill-update.sh "skill-name" "1.0" "path.md" "patch" [ERROR] NEW_VERSION must follow semantic versioning (e.g., 1.2.3): 1.0 Exit Code: 1 ``` ### File Not Found ```bash $ propagate-skill-update.sh "skill-name" "1.0.1" "/missing/path.md" "patch" [ERROR] UPDATE_PATH file not found: /missing/path.md Exit Code: 2 ``` ### Skill Not Found ```bash $ propagate-skill-update.sh "nonexistent" "1.0.1" "path.md" "patch" [ERROR] Skill not found in database: nonexistent Exit Code: 3 ``` ### Version Downgrade ```bash $ propagate-skill-update.sh "skill-name" "0.9.0" "path.md" "patch" [ERROR] Version downgrade not allowed: 1.0.0 → 0.9.0 Exit Code: 4 ``` ### Content Unchanged ```bash $ propagate-skill-update.sh "skill-name" "1.0.1" "path.md" "patch" [WARNING] Content hash unchanged - no actual content changes detected [ERROR] Content hash unchanged - update not needed Exit Code: 5 ``` ## Testing Run comprehensive integration tests: ```bash bash tests/integration/test-propagate-skill-update.sh ``` **Test Coverage:** - ✅ Patch version updates (1.0.0 → 1.0.1) - ✅ Minor version updates (1.0.0 → 1.1.0) - ✅ Major version updates (1.0.0 → 2.0.0) - ✅ Content hash validation - ✅ Approval history creation - ✅ Agent notification listing - ✅ Error handling (invalid version, missing file) - ✅ Idempotency (unchanged content detection) - ✅ Version type mismatch detection - ✅ Version downgrade rejection ## Best Practices ### 1. Always Specify Change Type ```bash # Good - Explicit change type propagate-skill-update.sh "skill" "1.0.1" "path.md" "patch" # Risky - Relies on default (patch) propagate-skill-update.sh "skill" "1.0.1" "path.md" ``` ### 2. Enable Notifications for Breaking Changes ```bash # Major version - notify all agents propagate-skill-update.sh "skill" "2.0.0" "path.md" "major" "true" # Patch version - optional notification propagate-skill-update.sh "skill" "1.0.1" "path.md" "patch" "false" ``` ### 3. Version Files Consistently ```bash # Consistent naming pattern .claude/skills/auth/jwt-auth-v1.0.0.md .claude/skills/auth/jwt-auth-v1.0.1.md .claude/skills/auth/jwt-auth-v1.1.0.md .claude/skills/auth/jwt-auth-v2.0.0.md ``` ### 4. Document Changes Update skill content with changelog: ```markdown # JWT Authentication Skill **Version:** 1.0.1 **Last Updated:** 2025-11-16 ## Changelog ### v1.0.1 (2025-11-16) - **Bug Fix:** Added missing refresh token validation - **Improvement:** Enhanced error handling for expired tokens - **Documentation:** Clarified token rotation process ### v1.0.0 (2025-11-01) - Initial release ``` ## Troubleshooting ### Database Locked ```bash # Check for concurrent processes lsof .claude/skills-database/skills.db # Wait and retry sleep 2 propagate-skill-update.sh ... ``` ### Permission Denied ```bash # Ensure script is executable chmod +x .claude/skills/workflow-codification/propagate-skill-update.sh # Check database permissions chmod 664 .claude/skills-database/skills.db ``` ### Hash Calculation Failure ```bash # Verify file exists and is readable ls -lh "$UPDATE_PATH" sha256sum "$UPDATE_PATH" # Check file permissions chmod 644 "$UPDATE_PATH" ``` ## Related Documentation - Phase 4 Edge Case Tracking: `.claude/skills/workflow-codification/EDGE_CASE_TRACKING.md` - Approval Workflow: `.claude/skills/workflow-codification/APPROVAL_WORKFLOW.md` - Skill Deployment: `.claude/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md` - Skills Database Schema: `.claude/skills-database/schema-v2.sql`