Skip to content
Back to skills

Integration

ASecurity

set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" DB_PATH="${SCRIPT_DIR}/../cfn-memory-persistence/task_intelligence.db" LOG_FILE="${SCRIPT_DIR}/task_intelligence.log" init_database() { mkdir -p "$(dirname "$DB_PATH")" sqlite3 "$DB_PATH" <<EOF CREATE TABLE IF NOT EXISTS task_classifications ( id INTEGER PRIMARY KEY AUTOINCREMENT, task_hash TEXT UNIQUE, description TEXT, category TEXT, subcategories TEXT, recommended_agents TEXT, confidence REAL, created_at DATETIME ...

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 7, 2026
databasesgobashsqltestingapidatabasefrontendbackendsecurityperformance

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add masharratt/claude-flow-novice --skill integration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Integration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Integration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/masharratt-integration/badge)](https://www.skillsdirectory.com/skills/masharratt-integration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
#!/bin/bash

# cfn-task-intelligence.sh
# Task Intelligence Integration Layer for CFN Loop Orchestration

set -euo pipefail

# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DB_PATH="${SCRIPT_DIR}/../cfn-memory-persistence/task_intelligence.db"
LOG_FILE="${SCRIPT_DIR}/task_intelligence.log"

# Initialize database
init_database() {
    mkdir -p "$(dirname "$DB_PATH")"
    sqlite3 "$DB_PATH" <<EOF
CREATE TABLE IF NOT EXISTS task_classifications (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    task_hash TEXT UNIQUE,
    description TEXT,
    category TEXT,
    subcategories TEXT,
    recommended_agents TEXT,
    confidence REAL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS complexity_estimates (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    task_hash TEXT,
    estimated_iterations INTEGER,
    confidence REAL,
    factors TEXT,
    mode TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (task_hash) REFERENCES task_classifications(task_hash)
);

CREATE TABLE IF NOT EXISTS specialist_recommendations (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    loop3_agents TEXT,
    feedback_themes TEXT,
    recurring_count INTEGER,
    recommended_specialist TEXT,
    reasoning TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS execution_outcomes (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    task_hash TEXT,
    actual_iterations INTEGER,
    success BOOLEAN,
    agents_used TEXT,
    specialists_added TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (task_hash) REFERENCES task_classifications(task_hash)
);
EOF
}

# Logging function
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"
}

# Generate task hash
generate_task_hash() {
    local description="$1"
    echo -n "$description" | sha256sum | cut -d' ' -f1
}

# Classify task
classify_task() {
    local description="$1"
    local task_hash
    task_hash=$(generate_task_hash "$description")
    
    # Check cache first
    local cached_result
    cached_result=$(sqlite3 "$DB_PATH" "SELECT category, subcategories, recommended_agents, confidence FROM task_classifications WHERE task_hash='$task_hash'" 2>/dev/null || echo "")
    
    if [[ -n "$cached_result" ]]; then
        IFS='|' read -r category subcategories agents confidence <<< "$cached_result"
        echo "{\"category\":\"$category\",\"subcategories\":[$subcategories],\"recommended_agents\":[$agents],\"confidence\":$confidence}"
        return
    fi
    
    # Classification logic
    local category="general"
    local subcategories="[]"
    local agents="[]"
    local confidence=0.5
    
    if [[ "$description" =~ (frontend|ui|ux|interface|component) ]]; then
        category="frontend"
        subcategories='["ui","state-management"]'
        agents='["frontend-developer","ui-ux-designer"]'
        confidence=0.85
    elif [[ "$description" =~ (backend|api|server|database|service) ]]; then
        category="backend"
        subcategories='["api","data-layer"]'
        agents='["backend-developer","database-administrator"]'
        confidence=0.82
    elif [[ "$description" =~ (security|auth|authentication|authorization|encryption) ]]; then
        category="security"
        subcategories='["authentication","authorization"]'
        agents='["security-specialist","backend-developer"]'
        confidence=0.88
    elif [[ "$description" =~ (performance|optimization|speed|latency|cache) ]]; then
        category="performance"
        subcategories='["optimization","monitoring"]'
        agents='["performance-engineer","backend-developer"]'
        confidence=0.80
    elif [[ "$description" =~ (test|testing|quality|assurance|qa) ]]; then
        category="testing"
        subcategories='["unit-testing","integration-testing"]'
        agents='["qa-engineer","test-automation-specialist"]'
        confidence=0.83
    fi
    
    # Cache result
    sqlite3 "$DB_PATH" "INSERT OR REPLACE INTO task_classifications (task_hash, description, category, subcategories, recommended_agents, confidence) VALUES ('$task_hash', '$(echo "$description" | sed "s/'/''/g")', '$category', '$subcategories', '$agents', $confidence)"
    
    echo "{\"category\":\"$category\",\"subcategories\":$subcategories,\"recommended_agents\":$agents,\"confidence\":$confidence}"
}

# Estimate complexity
estimate_complexity() {
    local description="$1"
    local task_hash
    task_hash=$(generate_task_hash "$description")
    
    # Check cache
    local cached_result
    cached_result=$(sqlite3 "$DB_PATH" "SELECT estimated_iterations, confidence, factors, mode FROM complexity_estimates WHERE task_hash='$task_hash'" 2>/dev/null || echo "")
    
    if [[ -n "$cached_result" ]]; then
        IFS='|' read -r iterations confidence factors mode <<< "$cached_result"
        echo "{\"estimated_iterations\":$iterations,\"confidence\":$confidence,\"factors\":[$factors],\"mode\":\"$mode\"}"
        return
    fi
    
    # Complexity estimation logic
    local iterations=3
    local confidence=0.7
    local factors="[]"
    local mode="standard"
    
    # Analyze factors
    local factor_list=()
    
    if [[ "$description" =~ (new|novel|first-time|initial) ]]; then
        ((iterations += 2))
        factor_list+=('"new-feature"')
        confidence=$(echo "$confidence - 0.1" | bc)
    fi
    
    if [[ "$description" =~ (cross|multiple|several|different) ]]; then
        ((iterations += 1))
        factor_list+=('"cross-component"')
        confidence=$(echo "$confidence - 0.05" | bc)
    fi
    
    if [[ "$description" =~ (test|testing|validate|verify) ]]; then
        ((iterations += 1))
        factor_list+=('"testing-required"')
    fi
    
    if [[ "$description" =~ (complex|difficult|challenging|advanced) ]]; then
        ((iterations += 2))
        factor_list+=('"high-complexity"')
        confidence=$(echo "$confidence - 0.1" | bc)
    fi
    
    if [[ "$description" =~ (urgent|critical|immediate) ]]; then
        mode="fast-track"
        iterations=$((iterations / 2 + 1))
    fi
    
    # Ensure minimum iterations
    if [[ $iterations -lt 2 ]]; then
        iterations=2
    fi
    
    # Ensure maximum iterations
    if [[ $iterations -gt 10 ]]; then
        iterations=10
    fi
    
    # Format factors
    if [[ ${#factor_list[@]} -gt 0 ]]; then
        factors=$(IFS=,; echo "${factor_list[*]}")
    fi
    
    # Cache result
    sqlite3 "$DB_PATH" "INSERT OR REPLACE INTO complexity_estimates (task_hash, estimated_iterations, confidence, factors, mode) VALUES ('$task_hash', $iterations, $confidence, '[$factors]', '$mode')"
    
    echo "{\"estimated_iterations\":$iterations,\"confidence\":$confidence,\"factors\":[$factors],\"mode\":\"$mode\"}"
}

# Recommend specialist
recommend_specialist() {
    local current_loop3="$1"
    local feedback_themes="$2"
    local recurring_count="$3"
    
    local specialist=""
    local reasoning=""
    local new_agents="$current_loop3"
    
    # Analyze feedback themes
    if [[ "$feedback_themes" =~ (security|auth|authentication|authorization) ]] && [[ $recurring_count -ge 3 ]]; then
        specialist="security-specialist"
        reasoning="Recurring feedback themes: security, authentication. Added as number of occurrences reached required threshold."
        if [[ ! "$current_loop3" =~ security-specialist ]]; then
            new_agents="$current_loop3,security-specialist"
        fi
    elif [[ "$feedback_themes" =~ (performance|optimization|speed|latency) ]] && [[ $recurring_count -ge 3 ]]; then
        specialist="performance-engineer"
        reasoning="Recurring feedback themes: performance, optimization. Added as number of occurrences reached required threshold."
        if [[ ! "$current_loop3" =~ performance-engineer ]]; then
            new_agents="$current_loop3,performance-engineer"
        fi
    elif [[ "$feedback_themes" =~ (test|testing|quality|assurance) ]] && [[ $recurring_count -ge 3 ]]; then
        specialist="qa-engineer"
        reasoning="Recurring feedback themes: testing, quality assurance. Added as number of occurrences reached required threshold."
        if [[ ! "$current_loop3" =~ qa-engineer ]]; then
            new_agents="$current_loop3,qa-engineer"
        fi
    elif [[ "$feedback_themes" =~ (ui|ux|design|interface) ]] && [[ $recurring_count -ge 3 ]]; then
        specialist="ui-ux-designer"
        reasoning="Recurring feedback themes: UI/UX, design. Added as number of occurrences reached required threshold."
        if [[ ! "$current_loop3" =~ ui-ux-designer ]]; then
            new_agents="$current_loop3,ui-ux-designer"
        fi
    fi
    
    # Store recommendation
    sqlite3 "$DB_PATH" "INSERT INTO specialist_recommendations (loop3_agents, feedback_themes, recurring_count, recommended_specialist, reasoning) VALUES ('$current_loop3', '$feedback_themes', $recurring_count, '$specialist', '$(echo "$reasoning" | sed "s/'/''/g")')"
    
    # Format new agents as array
    local agents_array="[\"$(echo "$new_agents" | sed 's/,/","/g')\"]"
    
    echo "{\"add_specialist\":\"$specialist\",\"reasoning\":\"$reasoning\",\"new_loop3_agents\":$agents_array}"
}

# Full analysis
full_analysis() {
    local description="$1"
    
    local classification
    classification=$(classify_task "$description")
    
    local complexity
    complexity=$(estimate_complexity "$description")
    
    echo "{\"classification\":$classification,\"complexity\":$complexity}"
}

# Main execution
main() {
    init_database
    
    local mode=""
    local task_description=""
    local current_loop3=""
    local feedback_themes=""
    local recurring_count=0
    
    # Parse arguments
    while [[ $# -gt 0 ]]; do
        case $1 in
            --mode)
                mode="$2"
                shift 2
                ;;
            --task-description)
                task_description="$2"
                shift 2
                ;;
            --current-loop3)
                current_loop3="$2"
                shift 2
                ;;
            --feedback-themes)
                feedback_themes="$2"
                shift 2
                ;;
            --recurring-count)
                recurring_count="$2"
                shift 2
                ;;
            *)
                log "Unknown option: $1"
                exit 1
                ;;
        esac
    done
    
    # Execute based on mode
    case "$mode" in
        classify)
            if [[ -z "$task_description" ]]; then
                log "Error: --task-description required for classify mode"
                exit 1
            fi
            classify_task "$task_description"
            ;;
        complexity)
            if [[ -z "$task_description" ]]; then
                log "Error: --task-description required for complexity mode"
                exit 1
            fi
            estimate_complexity "$task_description"
            ;;
        specialist)
            if [[ -z "$current_loop3" || -z "$feedback_themes" ]]; then
                log "Error: --current-loop3 and --feedback-themes required for specialist mode"
                exit 1
            fi
            recommend_specialist "$current_loop3" "$feedback_themes" "$recurring_count"
            ;;
        all)
            if [[ -z "$task_description" ]]; then
                log "Error: --task-description required for all mode"
                exit 1
            fi
            full_analysis "$task_description"
            ;;
        *)
            log "Error: Invalid mode. Use classify, complexity, specialist, or all"
            exit 1
            ;;
    esac
}

# Execute main function
main "$@"

Files in this skill

  • SKILL.md11.5 KB
  • learning-loop.sh4.4 KB
  • post-feedback-hook.sh3.8 KB
  • pre-execution-hook.sh1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.