[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2H22M3RSZ4XABEWPECESF":3,"skill-same:01M6C2H22M3RSZ4XABEWPECESF":85},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":62,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6C2H22M3RSZ4XABEWPECESF","cross-task-learner",null,"Enable agent loops to learn from similar past tasks and share patterns across loops","jmagly\u002Faiwg","jmagly","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1159087?v=4","01M6C10AK8N2WCSQN11FYGTJWN","Joseph Magly","01M6C10AQ8A2RMED1Y1BSVY7NF",229,"MIT","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fagent-loop\u002Fskills\u002Fcross-task-learner\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"learner","cross task learner","task","past","tasks","loops","semantic","matching","across","pattern","patterns","loop","learning","injection","extraction","share","learn","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: cross-task-learner\ndescription: Enable agent loops to learn from similar past tasks and share patterns across loops\nversion: 2.0.0\ncapabilities:\n  - semantic_task_matching\n  - pattern_extraction\n  - pattern_injection\n  - cross_loop_learning\nplatforms: [all]\n\n---\n\n# Cross-Task Learner Skill\n\nEnable agent loops to learn from similar past tasks and share discovered patterns across multiple concurrent or sequential loops.\n\n**Research Foundation**: REF-013 MetaGPT - 159% improvement with shared state\n\n**Version 2.0**: Multi-loop awareness with loop_id tracking\n\n---\n\n## Overview\n\nThis skill provides two core capabilities:\n\n1. **Pattern Extraction** - On loop completion, extract reusable patterns from execution history\n2. **Pattern Injection** - On loop start, inject relevant patterns from previous loops\n\n### Benefits\n\n| Benefit | Impact |\n|---------|--------|\n| Faster resolution | Patterns eliminate redundant debugging |\n| Higher success rates | Proven approaches applied automatically |\n| Accumulated wisdom | System gets smarter over time |\n| Anti-pattern detection | Failed approaches flagged and avoided |\n\n### Research Basis\n\nFrom REF-013 MetaGPT:\n- **159% improvement** with shared state across agents\n- **Publish-subscribe pattern** enables knowledge sharing\n- **Structured outputs** become inputs for other agents\n- **Memory persistence** critical for cross-session learning\n\n---\n\n## Pattern Extraction (On Loop Completion)\n\n### Trigger\n\n- Agent loop completion (success, partial, or failure)\n- Manual extraction request via `aiwg ralph-extract-patterns {loop_id}`\n\n### Process\n\n```yaml\nextraction_steps:\n  1_analyze_loop_history:\n    - Load loop state from .aiwg\u002Fralph\u002Floops\u002F{loop_id}\u002Fstate.json\n    - Load iteration analytics\n    - Load debug memory\n    - Load reflection history\n\n  2_identify_error_fix_pairs:\n    - Scan iterations for test failures\n    - Identify fixes that resolved errors\n    - Extract error signature + fix approach\n    - Compute initial success rate (1.0 for first occurrence)\n\n  3_identify_successful_approaches:\n    - Analyze task category (testing, debugging, refactoring, etc.)\n    - Extract step sequence that led to success\n    - Note tools used and iteration count\n    - Identify preconditions and benefits\n\n  4_identify_failure_patterns:\n    - Detect repeated same errors (anti-patterns)\n    - Note approaches that led to scope creep\n    - Flag patterns that caused quality degradation\n    - Record better alternatives if discovered\n\n  5_extract_code_templates:\n    - Identify successful code changes\n    - Generalize with placeholders\n    - Document use case and placeholders\n    - Tag by language and purpose\n\n  6_check_for_duplicates:\n    - Compare against existing patterns in registry\n    - Merge if >80% similar\n    - Update usage count and success rate if duplicate\n\n  7_store_in_registry:\n    - Add to .aiwg\u002Fralph\u002Fshared\u002Fpatterns\u002F{type}-patterns.json\n    - Update patterns index for semantic search\n    - Link to source loop_id\n\n  8_update_effectiveness_metrics:\n    - Increment pattern counts\n    - Update cross-loop benefit statistics\n    - Log extraction event\n```\n\n### Example Extraction\n\n**Input** (from loop `ralph-fix-auth-a1b2c3d4`):\n```yaml\niteration_2:\n  error:\n    type: \"TypeError\"\n    message: \"Cannot read property 'email' of null\"\n    location: \"src\u002Fauth\u002Fvalidate.ts:42\"\n\niteration_3:\n  fix_applied:\n    description: \"Added null check for user object\"\n    diff: |\n      + if (user == null) {\n      +   throw new ValidationError(\"User is required\");\n      + }\n  test_results:\n    passed: 12\n    failed: 0\n```\n\n**Output** (extracted pattern):\n```yaml\npattern_id: \"pat-error-null-check-015\"\ntype: \"error_pattern\"\nerror_signature:\n  error_type: \"TypeError\"\n  error_pattern: \"Cannot read property '.*' of null\"\n  error_location_hints:\n    - \"*.ts:validate*\"\nfix_approach:\n  description: \"Add null check before property access\"\n  fix_category: \"add_null_check\"\n  code_template: |\n    if ({{variable}} == null) {\n      throw new ValidationError(\"{{message}}\");\n    }\n  code_template_language: \"typescript\"\nsource_loops:\n  - loop_id: \"ralph-fix-auth-a1b2c3d4\"\n    timestamp: \"2026-02-02T15:00:00Z\"\n    contributed_by: \"software-implementer\"\nsuccess_rate: 1.0\nusage_count: 1\nfirst_discovered: \"2026-02-02T15:00:00Z\"\nlast_used: \"2026-02-02T15:00:00Z\"\ntags:\n  - \"typescript\"\n  - \"null-safety\"\n  - \"validation\"\n```\n\n### Configuration\n\n```yaml\n# In aiwg.yml or .aiwg\u002Fconfig.yml\nralph:\n  cross_loop_learning:\n    extraction:\n      enabled: true\n      auto_extract_on_completion: true\n      min_success_rate_threshold: 0.6\n      min_usage_count_for_evaluation: 3\n      extract_code_templates: true\n      merge_similar_patterns: true\n      similarity_threshold: 0.80\n```\n\n---\n\n## Pattern Injection (On Loop Start)\n\n### Trigger\n\n- Agent loop start\n- Manual injection request via `aiwg ralph-inject-patterns {loop_id}`\n\n### Process\n\n```yaml\ninjection_steps:\n  1_analyze_task_description:\n    - Extract task text\n    - Identify task category (testing, debugging, refactoring, etc.)\n    - Generate task embedding for semantic matching\n\n  2_search_error_patterns:\n    - Query error patterns by task category\n    - Match error signatures to likely error types\n    - Filter by min success rate (default 0.6)\n    - Sort by effectiveness\n\n  3_search_success_patterns:\n    - Query success patterns by task category match\n    - Use semantic similarity on task description\n    - Filter by min success rate\n    - Sort by average iterations (lower is better)\n\n  4_search_anti_patterns:\n    - Query anti-patterns by task category\n    - Identify failure modes to avoid\n    - Include better alternatives\n\n  5_search_code_templates:\n    - Query templates by language and task type\n    - Filter by success rate\n    - Sort by usage count\n\n  6_filter_and_rank:\n    - Combine all pattern types\n    - Remove duplicates\n    - Rank by relevance × effectiveness\n    - Take top-k (default k=5)\n\n  7_inject_into_context:\n    - Format patterns for display\n    - Add to loop context as \"Cross-Loop Learning Context\"\n    - Track which patterns were injected (for effectiveness measurement)\n\n  8_track_usage:\n    - Log pattern injection event\n    - Record loop_id and injected pattern_ids\n    - Enable later effectiveness analysis\n```\n\n### Example Injection\n\n**Input** (loop `ralph-fix-validation-b2c3d4e5` starting):\n```yaml\ntask: \"Fix TypeScript type errors in user validation\"\ncategory: \"debugging\"\n```\n\n**Patterns Retrieved**:\n```yaml\nretrieved_patterns:\n  error_patterns:\n    - pattern_id: \"pat-error-null-check-015\"\n      relevance: 0.95\n      success_rate: 1.0\n      usage_count: 1\n\n    - pattern_id: \"pat-error-type-mismatch-003\"\n      relevance: 0.88\n      success_rate: 0.94\n      usage_count: 18\n\n  success_patterns:\n    - pattern_id: \"pat-success-type-fixing-002\"\n      relevance: 0.92\n      success_rate: 0.87\n      average_iterations: 2.8\n\n  anti_patterns:\n    - pattern_id: \"pat-anti-premature-optimization-001\"\n      relevance: 0.65\n      failure_rate: 0.85\n```\n\n**Injected Context** (top 5 patterns):\n```markdown\n## Cross-Loop Learning Context\n\nPatterns from previous loops that may help with this task:\n\n### Error Patterns\n\n1. **TypeError: null property access** (100% success, 1 use)\n   - Error: \"Cannot read property '.*' of null\"\n   - Fix: Add null check before property access\n   - Template:\n     ```typescript\n     if ({{variable}} == null) {\n       throw new ValidationError(\"{{message}}\");\n     }\n     ```\n   - Source: ralph-fix-auth-a1b2c3d4\n\n2. **TypeError: type mismatch** (94% success, 18 uses)\n   - Error: \"Type 'X' is not assignable to type 'Y'\"\n   - Fix: Update interface definition or add type assertion\n   - Source: 18 previous loops\n\n### Success Patterns\n\n1. **Type error fixing approach** (87% success, avg 2.8 iterations)\n   - Steps:\n     1. Run tsc --noEmit to see all errors\n     2. Group errors by file\u002Ftype\n     3. Fix interface definitions first\n     4. Fix usages second\n     5. Verify with tsc again\n   - Source: 12 successful loops\n\n### Anti-Patterns to Avoid\n\n1. **Premature optimization** (85% failure rate)\n   - Don't optimize before tests pass\n   - Complete primary task first\n   - Better alternative: pat-success-refactor-module-002\n```\n\n### Configuration\n\n```yaml\nralph:\n  cross_loop_learning:\n    injection:\n      enabled: true\n      top_k_patterns: 5\n      min_success_rate: 0.6\n      max_patterns_injected: 10\n      include_error_patterns: true\n      include_success_patterns: true\n      include_anti_patterns: true\n      include_code_templates: true\n```\n\n---\n\n## Multi-Loop Awareness (Version 2.0)\n\n### Loop ID Tracking\n\nAll patterns now track their source loop IDs:\n\n```yaml\npattern:\n  pattern_id: \"pat-error-null-check-015\"\n  source_loops:\n    - loop_id: \"ralph-fix-auth-a1b2c3d4\"\n      timestamp: \"2026-02-02T15:00:00Z\"\n      contributed_by: \"software-implementer\"\n    - loop_id: \"ralph-fix-validation-b2c3d4e5\"\n      timestamp: \"2026-02-02T16:30:00Z\"\n      contributed_by: \"debugger\"\n```\n\n### Aggregation Across Loops\n\nPatterns aggregate learnings from multiple loops:\n\n**Example**: Pattern seen in 3 loops\n```yaml\npattern_id: \"pat-error-type-mismatch-003\"\nsource_loops: [ralph-a, ralph-b, ralph-c]\nusage_count: 18  # Total across all loops\nsuccess_rate: 0.94  # Aggregated success rate (17\u002F18)\n\neffectiveness_trend:\n  - timestamp: \"2026-02-01T10:00:00Z\"\n    success_rate_snapshot: 1.0\n    sample_size: 1\n    source_loop: \"ralph-a\"\n  - timestamp: \"2026-02-01T14:00:00Z\"\n    success_rate_snapshot: 0.90\n    sample_size: 10\n    source_loops: [\"ralph-a\", \"ralph-b\"]\n  - timestamp: \"2026-02-02T15:00:00Z\"\n    success_rate_snapshot: 0.94\n    sample_size: 18\n    source_loops: [\"ralph-a\", \"ralph-b\", \"ralph-c\"]\n```\n\n### Cross-Loop Pattern Updates\n\nWhen a loop uses a pattern, it updates the shared registry:\n\n```yaml\non_pattern_application:\n  1_increment_usage_count:\n    - pattern.usage_count += 1\n\n  2_update_success_rate:\n    - If application succeeded:\n        pattern.successful_applications += 1\n    - Else:\n        pattern.failed_applications += 1\n    - pattern.success_rate = successful \u002F (successful + failed)\n\n  3_update_effectiveness_trend:\n    - Add new snapshot with current success rate and sample size\n\n  4_add_source_loop:\n    - If loop_id not in source_loops:\n        pattern.source_loops.append({\n          loop_id: current_loop_id,\n          timestamp: now,\n          contributed_by: current_agent\n        })\n\n  5_update_last_used:\n    - pattern.last_used = now\n```\n\n### Pattern Lineage\n\nPatterns maintain full lineage across loops:\n\n```\nPattern: pat-error-null-check-015\n\nDiscovered: ralph-fix-auth-a1b2c3d4 (2026-02-02T15:00:00Z)\nApplied:    ralph-fix-validation-b2c3d4e5 (2026-02-02T16:30:00Z) ✓\nApplied:    ralph-fix-user-c3d4e5f6 (2026-02-02T18:00:00Z) ✓\nApplied:    ralph-fix-api-d4e5f6a7 (2026-02-02T19:15:00Z) ✗\n\nSuccess rate: 75% (3\u002F4)\n```\n\n---\n\n## Effectiveness Measurement\n\n### Metrics Tracked\n\nAll metrics now support multi-loop aggregation:\n\n```yaml\neffectiveness_metrics:\n  total_patterns: 47\n  patterns_by_type:\n    error_patterns: 24\n    success_patterns: 15\n    anti_patterns: 5\n    code_templates: 3\n\n  pattern_usage_stats:\n    total_applications: 156\n    successful_applications: 142\n    failed_applications: 14\n    overall_success_rate: 0.91\n\n  cross_loop_benefit:\n    loops_with_pattern_injection: 23\n    loops_without_pattern_injection: 8\n    average_iterations_with: 3.2\n    average_iterations_without: 5.1\n    improvement_percentage: 37.3  # (5.1 - 3.2) \u002F 5.1 * 100\n\n  last_updated: \"2026-02-02T20:00:00Z\"\n```\n\n### Per-Loop Impact\n\nEach loop tracks which patterns it used:\n\n```yaml\nloop_state:\n  loop_id: \"ralph-fix-validation-b2c3d4e5\"\n  cross_loop_learning:\n    injected_patterns:\n      - pattern_id: \"pat-error-null-check-015\"\n        applied: true\n        successful: true\n        iteration_used: 2\n\n      - pattern_id: \"pat-error-type-mismatch-003\"\n        applied: true\n        successful: true\n        iteration_used: 4\n\n    extracted_patterns:\n      - pattern_id: \"pat-error-optional-types-016\"\n        new: true\n        success_rate: 1.0\n\n    improvement_estimate:\n      baseline_iterations: 6  # Estimated without patterns\n      actual_iterations: 4\n      improvement: 33.3%\n```\n\n---\n\n## Storage Structure\n\n```\n.aiwg\u002Fralph\u002F\n├── shared\u002F                          # Cross-loop shared state\n│   ├── patterns\u002F\n│   │   ├── error-patterns.json      # Error → fix patterns\n│   │   ├── success-patterns.json    # Success approaches\n│   │   ├── anti-patterns.json       # Failure patterns\n│   │   └── code-templates.json      # Reusable code\n│   ├── archive\u002F                     # Pruned patterns\n│   │   ├── 2026-01-patterns.json\n│   │   └── 2026-02-patterns.json\n│   └── effectiveness-metrics.json   # Cross-loop metrics\n│\n├── memory\u002F                          # Cross-task memory\n│   ├── task-index.json              # Semantic task index\n│   ├── embeddings\u002F                  # Task embeddings\n│   ├── reflections\u002F                 # Reflexion-style reflections\n│   └── patterns\u002F                    # Patterns integrated here too\n│\n└── loops\u002F                           # Per-loop state\n    ├── ralph-fix-auth-a1b2c3d4\u002F\n    │   ├── state.json               # Includes pattern usage\n    │   └── analytics\u002F\n    │       └── analytics.json       # Pattern effectiveness\n    └── ralph-fix-validation-b2c3d4e5\u002F\n        └── ...\n```\n\n---\n\n## CLI Commands\n\n### Extract Patterns Manually\n\n```bash\n# Extract from completed loop\naiwg ralph-extract-patterns ralph-fix-auth-a1b2c3d4\n\n# Extract from all completed loops\naiwg ralph-extract-patterns --all\n\n# Extract specific pattern types only\naiwg ralph-extract-patterns ralph-fix-auth-a1b2c3d4 --types error,success\n```\n\n### Inject Patterns Manually\n\n```bash\n# Inject patterns into running loop\naiwg ralph-inject-patterns ralph-current-loop-e5f6a7b8\n\n# Inject with custom filters\naiwg ralph-inject-patterns ralph-current-loop-e5f6a7b8 \\\n  --min-success-rate 0.8 \\\n  --top-k 10\n```\n\n### List Patterns\n\n```bash\n# List all patterns\naiwg ralph-patterns list\n\n# Filter by type\naiwg ralph-patterns list --type error\n\n# Filter by success rate\naiwg ralph-patterns list --min-success-rate 0.8\n\n# Filter by source loop\naiwg ralph-patterns list --from-loop ralph-fix-auth-a1b2c3d4\n```\n\n### Show Pattern Details\n\n```bash\naiwg ralph-patterns show pat-error-null-check-015\n```\n\n**Output**:\n```yaml\nPattern: pat-error-null-check-015\nType: Error Pattern\nCreated: 2026-02-02T15:00:00Z\nLast Used: 2026-02-02T19:15:00Z\n\nEffectiveness:\n  Success Rate: 75% (3\u002F4 applications)\n  Usage Count: 4\n  Average Impact: -2.0 iterations\n\nSource Loops:\n  - ralph-fix-auth-a1b2c3d4 (discovered)\n  - ralph-fix-validation-b2c3d4e5 (applied successfully)\n  - ralph-fix-user-c3d4e5f6 (applied successfully)\n  - ralph-fix-api-d4e5f6a7 (applied, failed)\n\nError Signature:\n  Type: TypeError\n  Pattern: \"Cannot read property '.*' of null\"\n\nFix Approach:\n  Category: add_null_check\n  Template: |\n    if ({{variable}} == null) {\n      throw new ValidationError(\"{{message}}\");\n    }\n\nTags: typescript, null-safety, validation\n```\n\n### Prune Patterns\n\n```bash\n# Dry run\naiwg ralph-patterns prune --dry-run\n\n# Prune low-success patterns\naiwg ralph-patterns prune --min-success-rate 0.5\n\n# Prune old unused patterns\naiwg ralph-patterns prune --max-age-days 90\n```\n\n---\n\n## Integration with Other Skills\n\n### With Reflection Injection\n\nPatterns complement reflections:\n- **Reflections**: What was learned in this specific loop\n- **Patterns**: Reusable knowledge across all loops\n\nBoth are injected into new loop context.\n\n### With Auto-Test Execution\n\nPatterns inform test execution:\n- Error patterns suggest which tests to run\n- Success patterns guide test-driven approaches\n- Code templates provide test setup patterns\n\n### With Agent Loop Skill\n\nAgent loop skill triggers pattern extraction\u002Finjection:\n- On loop start: Inject relevant patterns\n- On loop completion: Extract new patterns\n- On iteration: Update pattern usage tracking\n\n---\n\n## Best Practices\n\n### 1. Let Patterns Stabilize\n\nDon't prune patterns too early. Allow 5-10 uses before evaluating:\n\n```yaml\nmin_usage_count_for_evaluation: 5\n```\n\n### 2. Tag Patterns Consistently\n\nUse standardized tags:\n- Language: `typescript`, `python`, `go`\n- Domain: `auth`, `validation`, `testing`\n- Type: `null-safety`, `async`, `error-handling`\n\n### 3. Monitor Pattern Quality\n\nRegularly review low-success patterns:\n\n```bash\naiwg ralph-patterns list --min-success-rate 0.0 --max-success-rate 0.6\n```\n\n### 4. Share Patterns Across Teams\n\nExport\u002Fimport patterns for team-wide learning:\n\n```bash\n# Export team patterns\naiwg ralph-patterns export --output team-patterns.json\n\n# Import on teammate's machine\naiwg ralph-patterns import --input team-patterns.json\n```\n\n---\n\n## Troubleshooting\n\n### Pattern Not Injected\n\n**Symptom**: Loop doesn't receive relevant pattern\n\n**Causes**:\n1. Pattern below success rate threshold\n2. Task description doesn't match semantically\n3. Injection disabled\n\n**Fix**:\n```bash\n# Check pattern\naiwg ralph-patterns show {pattern_id}\n\n# Lower threshold\naiwg ralph \"task\" --min-pattern-success-rate 0.5\n\n# Check config\ngrep -A10 \"cross_loop_learning:\" aiwg.yml\n```\n\n### Pattern Not Extracted\n\n**Symptom**: Loop completed but no patterns added\n\n**Causes**:\n1. Auto-extraction disabled\n2. Loop didn't succeed\n3. Pattern duplicates existing one\n\n**Fix**:\n```bash\n# Extract manually\naiwg ralph-extract-patterns {loop_id}\n\n# Enable auto-extraction\n# In aiwg.yml:\nralph:\n  cross_loop_learning:\n    extraction:\n      auto_extract_on_completion: true\n```\n\n---\n\n## Related\n\n- `@$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fshared-patterns.yaml` - Pattern schema\n- `@$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fcross-task-memory.yaml` - Cross-task memory\n- `@$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fdocs\u002Fcross-loop-learning.md` - Full documentation\n- `.aiwg\u002Fresearch\u002Fpaper-analysis\u002FREF-013-aiwg-analysis.md` - MetaGPT research\n- `ralph` skill - Iterative loop executor\n- `agent-loop` skill - Detects iterative loop requests\n\n---\n\n## Version History\n\n- **2.0.0**: Multi-loop awareness with loop_id tracking and cross-loop aggregation (Issue #269)\n- **1.0.0**: Initial cross-task learning with semantic matching (Issues #154, #155)\n\n## References\n\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002FREADME.md — Ralph addon overview\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fshared-patterns.yaml — Pattern schema for cross-loop learning\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fcross-task-memory.yaml — Cross-task memory schema\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fdocs\u002Fcross-loop-learning.md — Full cross-loop learning documentation\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fsubagent-scoping.md — Subagent scoping rules relevant to loop orchestration\n","# Cross-Task Learner Skill\n\nEnable agent loops to learn from similar past tasks and share discovered patterns across multiple concurrent or sequential loops.\n\n**Research Foundation**: REF-013 MetaGPT - 159% improvement with shared state\n\n**Version 2.0**: Multi-loop awareness with loop_id tracking\n\n---\n\n## Overview\n\nThis skill provides two core capabilities:\n\n1. **Pattern Extraction** - On loop completion, extract reusable patterns from execution history\n2. **Pattern Injection** - On loop start, inject relevant patterns from previous loops\n\n### Benefits\n\n| Benefit | Impact |\n|---------|--------|\n| Faster resolution | Patterns eliminate redundant debugging |\n| Higher success rates | Proven approaches applied automatically |\n| Accumulated wisdom | System gets smarter over time |\n| Anti-pattern detection | Failed approaches flagged and avoided |\n\n### Research Basis\n\nFrom REF-013 MetaGPT:\n- **159% improvement** with shared state across agents\n- **Publish-subscribe pattern** enables knowledge sharing\n- **Structured outputs** become inputs for other agents\n- **Memory persistence** critical for cross-session learning\n\n---\n\n## Pattern Extraction (On Loop Completion)\n\n### Trigger\n\n- Agent loop completion (success, partial, or failure)\n- Manual extraction request via `aiwg ralph-extract-patterns {loop_id}`\n\n### Process\n\n```yaml\nextraction_steps:\n  1_analyze_loop_history:\n    - Load loop state from .aiwg\u002Fralph\u002Floops\u002F{loop_id}\u002Fstate.json\n    - Load iteration analytics\n    - Load debug memory\n    - Load reflection history\n\n  2_identify_error_fix_pairs:\n    - Scan iterations for test failures\n    - Identify fixes that resolved errors\n    - Extract error signature + fix approach\n    - Compute initial success rate (1.0 for first occurrence)\n\n  3_identify_successful_approaches:\n    - Analyze task category (testing, debugging, refactoring, etc.)\n    - Extract step sequence that led to success\n    - Note tools used and iteration count\n    - Identify preconditions and benefits\n\n  4_identify_failure_patterns:\n    - Detect repeated same errors (anti-patterns)\n    - Note approaches that led to scope creep\n    - Flag patterns that caused quality degradation\n    - Record better alternatives if discovered\n\n  5_extract_code_templates:\n    - Identify successful code changes\n    - Generalize with placeholders\n    - Document use case and placeholders\n    - Tag by language and purpose\n\n  6_check_for_duplicates:\n    - Compare against existing patterns in registry\n    - Merge if >80% similar\n    - Update usage count and success rate if duplicate\n\n  7_store_in_registry:\n    - Add to .aiwg\u002Fralph\u002Fshared\u002Fpatterns\u002F{type}-patterns.json\n    - Update patterns index for semantic search\n    - Link to source loop_id\n\n  8_update_effectiveness_metrics:\n    - Increment pattern counts\n    - Update cross-loop benefit statistics\n    - Log extraction event\n```\n\n### Example Extraction\n\n**Input** (from loop `ralph-fix-auth-a1b2c3d4`):\n```yaml\niteration_2:\n  error:\n    type: \"TypeError\"\n    message: \"Cannot read property 'email' of null\"\n    location: \"src\u002Fauth\u002Fvalidate.ts:42\"\n\niteration_3:\n  fix_applied:\n    description: \"Added null check for user object\"\n    diff: |\n      + if (user == null) {\n      +   throw new ValidationError(\"User is required\");\n      + }\n  test_results:\n    passed: 12\n    failed: 0\n```\n\n**Output** (extracted pattern):\n```yaml\npattern_id: \"pat-error-null-check-015\"\ntype: \"error_pattern\"\nerror_signature:\n  error_type: \"TypeError\"\n  error_pattern: \"Cannot read property '.*' of null\"\n  error_location_hints:\n    - \"*.ts:validate*\"\nfix_approach:\n  description: \"Add null check before property access\"\n  fix_category: \"add_null_check\"\n  code_template: |\n    if ({{variable}} == null) {\n      throw new ValidationError(\"{{message}}\");\n    }\n  code_template_language: \"typescript\"\nsource_loops:\n  - loop_id: \"ralph-fix-auth-a1b2c3d4\"\n    timestamp: \"2026-02-02T15:00:00Z\"\n    contributed_by: \"software-implementer\"\nsuccess_rate: 1.0\nusage_count: 1\nfirst_discovered: \"2026-02-02T15:00:00Z\"\nlast_used: \"2026-02-02T15:00:00Z\"\ntags:\n  - \"typescript\"\n  - \"null-safety\"\n  - \"validation\"\n```\n\n### Configuration\n\n```yaml\n# In aiwg.yml or .aiwg\u002Fconfig.yml\nralph:\n  cross_loop_learning:\n    extraction:\n      enabled: true\n      auto_extract_on_completion: true\n      min_success_rate_threshold: 0.6\n      min_usage_count_for_evaluation: 3\n      extract_code_templates: true\n      merge_similar_patterns: true\n      similarity_threshold: 0.80\n```\n\n---\n\n## Pattern Injection (On Loop Start)\n\n### Trigger\n\n- Agent loop start\n- Manual injection request via `aiwg ralph-inject-patterns {loop_id}`\n\n### Process\n\n```yaml\ninjection_steps:\n  1_analyze_task_description:\n    - Extract task text\n    - Identify task category (testing, debugging, refactoring, etc.)\n    - Generate task embedding for semantic matching\n\n  2_search_error_patterns:\n    - Query error patterns by task category\n    - Match error signatures to likely error types\n    - Filter by min success rate (default 0.6)\n    - Sort by effectiveness\n\n  3_search_success_patterns:\n    - Query success patterns by task category match\n    - Use semantic similarity on task description\n    - Filter by min success rate\n    - Sort by average iterations (lower is better)\n\n  4_search_anti_patterns:\n    - Query anti-patterns by task category\n    - Identify failure modes to avoid\n    - Include better alternatives\n\n  5_search_code_templates:\n    - Query templates by language and task type\n    - Filter by success rate\n    - Sort by usage count\n\n  6_filter_and_rank:\n    - Combine all pattern types\n    - Remove duplicates\n    - Rank by relevance × effectiveness\n    - Take top-k (default k=5)\n\n  7_inject_into_context:\n    - Format patterns for display\n    - Add to loop context as \"Cross-Loop Learning Context\"\n    - Track which patterns were injected (for effectiveness measurement)\n\n  8_track_usage:\n    - Log pattern injection event\n    - Record loop_id and injected pattern_ids\n    - Enable later effectiveness analysis\n```\n\n### Example Injection\n\n**Input** (loop `ralph-fix-validation-b2c3d4e5` starting):\n```yaml\ntask: \"Fix TypeScript type errors in user validation\"\ncategory: \"debugging\"\n```\n\n**Patterns Retrieved**:\n```yaml\nretrieved_patterns:\n  error_patterns:\n    - pattern_id: \"pat-error-null-check-015\"\n      relevance: 0.95\n      success_rate: 1.0\n      usage_count: 1\n\n    - pattern_id: \"pat-error-type-mismatch-003\"\n      relevance: 0.88\n      success_rate: 0.94\n      usage_count: 18\n\n  success_patterns:\n    - pattern_id: \"pat-success-type-fixing-002\"\n      relevance: 0.92\n      success_rate: 0.87\n      average_iterations: 2.8\n\n  anti_patterns:\n    - pattern_id: \"pat-anti-premature-optimization-001\"\n      relevance: 0.65\n      failure_rate: 0.85\n```\n\n**Injected Context** (top 5 patterns):\n```markdown\n## Cross-Loop Learning Context\n\nPatterns from previous loops that may help with this task:\n\n### Error Patterns\n\n1. **TypeError: null property access** (100% success, 1 use)\n   - Error: \"Cannot read property '.*' of null\"\n   - Fix: Add null check before property access\n   - Template:\n     ```typescript\n     if ({{variable}} == null) {\n       throw new ValidationError(\"{{message}}\");\n     }\n     ```\n   - Source: ralph-fix-auth-a1b2c3d4\n\n2. **TypeError: type mismatch** (94% success, 18 uses)\n   - Error: \"Type 'X' is not assignable to type 'Y'\"\n   - Fix: Update interface definition or add type assertion\n   - Source: 18 previous loops\n\n### Success Patterns\n\n1. **Type error fixing approach** (87% success, avg 2.8 iterations)\n   - Steps:\n     1. Run tsc --noEmit to see all errors\n     2. Group errors by file\u002Ftype\n     3. Fix interface definitions first\n     4. Fix usages second\n     5. Verify with tsc again\n   - Source: 12 successful loops\n\n### Anti-Patterns to Avoid\n\n1. **Premature optimization** (85% failure rate)\n   - Don't optimize before tests pass\n   - Complete primary task first\n   - Better alternative: pat-success-refactor-module-002\n```\n\n### Configuration\n\n```yaml\nralph:\n  cross_loop_learning:\n    injection:\n      enabled: true\n      top_k_patterns: 5\n      min_success_rate: 0.6\n      max_patterns_injected: 10\n      include_error_patterns: true\n      include_success_patterns: true\n      include_anti_patterns: true\n      include_code_templates: true\n```\n\n---\n\n## Multi-Loop Awareness (Version 2.0)\n\n### Loop ID Tracking\n\nAll patterns now track their source loop IDs:\n\n```yaml\npattern:\n  pattern_id: \"pat-error-null-check-015\"\n  source_loops:\n    - loop_id: \"ralph-fix-auth-a1b2c3d4\"\n      timestamp: \"2026-02-02T15:00:00Z\"\n      contributed_by: \"software-implementer\"\n    - loop_id: \"ralph-fix-validation-b2c3d4e5\"\n      timestamp: \"2026-02-02T16:30:00Z\"\n      contributed_by: \"debugger\"\n```\n\n### Aggregation Across Loops\n\nPatterns aggregate learnings from multiple loops:\n\n**Example**: Pattern seen in 3 loops\n```yaml\npattern_id: \"pat-error-type-mismatch-003\"\nsource_loops: [ralph-a, ralph-b, ralph-c]\nusage_count: 18  # Total across all loops\nsuccess_rate: 0.94  # Aggregated success rate (17\u002F18)\n\neffectiveness_trend:\n  - timestamp: \"2026-02-01T10:00:00Z\"\n    success_rate_snapshot: 1.0\n    sample_size: 1\n    source_loop: \"ralph-a\"\n  - timestamp: \"2026-02-01T14:00:00Z\"\n    success_rate_snapshot: 0.90\n    sample_size: 10\n    source_loops: [\"ralph-a\", \"ralph-b\"]\n  - timestamp: \"2026-02-02T15:00:00Z\"\n    success_rate_snapshot: 0.94\n    sample_size: 18\n    source_loops: [\"ralph-a\", \"ralph-b\", \"ralph-c\"]\n```\n\n### Cross-Loop Pattern Updates\n\nWhen a loop uses a pattern, it updates the shared registry:\n\n```yaml\non_pattern_application:\n  1_increment_usage_count:\n    - pattern.usage_count += 1\n\n  2_update_success_rate:\n    - If application succeeded:\n        pattern.successful_applications += 1\n    - Else:\n        pattern.failed_applications += 1\n    - pattern.success_rate = successful \u002F (successful + failed)\n\n  3_update_effectiveness_trend:\n    - Add new snapshot with current success rate and sample size\n\n  4_add_source_loop:\n    - If loop_id not in source_loops:\n        pattern.source_loops.append({\n          loop_id: current_loop_id,\n          timestamp: now,\n          contributed_by: current_agent\n        })\n\n  5_update_last_used:\n    - pattern.last_used = now\n```\n\n### Pattern Lineage\n\nPatterns maintain full lineage across loops:\n\n```\nPattern: pat-error-null-check-015\n\nDiscovered: ralph-fix-auth-a1b2c3d4 (2026-02-02T15:00:00Z)\nApplied:    ralph-fix-validation-b2c3d4e5 (2026-02-02T16:30:00Z) ✓\nApplied:    ralph-fix-user-c3d4e5f6 (2026-02-02T18:00:00Z) ✓\nApplied:    ralph-fix-api-d4e5f6a7 (2026-02-02T19:15:00Z) ✗\n\nSuccess rate: 75% (3\u002F4)\n```\n\n---\n\n## Effectiveness Measurement\n\n### Metrics Tracked\n\nAll metrics now support multi-loop aggregation:\n\n```yaml\neffectiveness_metrics:\n  total_patterns: 47\n  patterns_by_type:\n    error_patterns: 24\n    success_patterns: 15\n    anti_patterns: 5\n    code_templates: 3\n\n  pattern_usage_stats:\n    total_applications: 156\n    successful_applications: 142\n    failed_applications: 14\n    overall_success_rate: 0.91\n\n  cross_loop_benefit:\n    loops_with_pattern_injection: 23\n    loops_without_pattern_injection: 8\n    average_iterations_with: 3.2\n    average_iterations_without: 5.1\n    improvement_percentage: 37.3  # (5.1 - 3.2) \u002F 5.1 * 100\n\n  last_updated: \"2026-02-02T20:00:00Z\"\n```\n\n### Per-Loop Impact\n\nEach loop tracks which patterns it used:\n\n```yaml\nloop_state:\n  loop_id: \"ralph-fix-validation-b2c3d4e5\"\n  cross_loop_learning:\n    injected_patterns:\n      - pattern_id: \"pat-error-null-check-015\"\n        applied: true\n        successful: true\n        iteration_used: 2\n\n      - pattern_id: \"pat-error-type-mismatch-003\"\n        applied: true\n        successful: true\n        iteration_used: 4\n\n    extracted_patterns:\n      - pattern_id: \"pat-error-optional-types-016\"\n        new: true\n        success_rate: 1.0\n\n    improvement_estimate:\n      baseline_iterations: 6  # Estimated without patterns\n      actual_iterations: 4\n      improvement: 33.3%\n```\n\n---\n\n## Storage Structure\n\n```\n.aiwg\u002Fralph\u002F\n├── shared\u002F                          # Cross-loop shared state\n│   ├── patterns\u002F\n│   │   ├── error-patterns.json      # Error → fix patterns\n│   │   ├── success-patterns.json    # Success approaches\n│   │   ├── anti-patterns.json       # Failure patterns\n│   │   └── code-templates.json      # Reusable code\n│   ├── archive\u002F                     # Pruned patterns\n│   │   ├── 2026-01-patterns.json\n│   │   └── 2026-02-patterns.json\n│   └── effectiveness-metrics.json   # Cross-loop metrics\n│\n├── memory\u002F                          # Cross-task memory\n│   ├── task-index.json              # Semantic task index\n│   ├── embeddings\u002F                  # Task embeddings\n│   ├── reflections\u002F                 # Reflexion-style reflections\n│   └── patterns\u002F                    # Patterns integrated here too\n│\n└── loops\u002F                           # Per-loop state\n    ├── ralph-fix-auth-a1b2c3d4\u002F\n    │   ├── state.json               # Includes pattern usage\n    │   └── analytics\u002F\n    │       └── analytics.json       # Pattern effectiveness\n    └── ralph-fix-validation-b2c3d4e5\u002F\n        └── ...\n```\n\n---\n\n## CLI Commands\n\n### Extract Patterns Manually\n\n```bash\n# Extract from completed loop\naiwg ralph-extract-patterns ralph-fix-auth-a1b2c3d4\n\n# Extract from all completed loops\naiwg ralph-extract-patterns --all\n\n# Extract specific pattern types only\naiwg ralph-extract-patterns ralph-fix-auth-a1b2c3d4 --types error,success\n```\n\n### Inject Patterns Manually\n\n```bash\n# Inject patterns into running loop\naiwg ralph-inject-patterns ralph-current-loop-e5f6a7b8\n\n# Inject with custom filters\naiwg ralph-inject-patterns ralph-current-loop-e5f6a7b8 \\\n  --min-success-rate 0.8 \\\n  --top-k 10\n```\n\n### List Patterns\n\n```bash\n# List all patterns\naiwg ralph-patterns list\n\n# Filter by type\naiwg ralph-patterns list --type error\n\n# Filter by success rate\naiwg ralph-patterns list --min-success-rate 0.8\n\n# Filter by source loop\naiwg ralph-patterns list --from-loop ralph-fix-auth-a1b2c3d4\n```\n\n### Show Pattern Details\n\n```bash\naiwg ralph-patterns show pat-error-null-check-015\n```\n\n**Output**:\n```yaml\nPattern: pat-error-null-check-015\nType: Error Pattern\nCreated: 2026-02-02T15:00:00Z\nLast Used: 2026-02-02T19:15:00Z\n\nEffectiveness:\n  Success Rate: 75% (3\u002F4 applications)\n  Usage Count: 4\n  Average Impact: -2.0 iterations\n\nSource Loops:\n  - ralph-fix-auth-a1b2c3d4 (discovered)\n  - ralph-fix-validation-b2c3d4e5 (applied successfully)\n  - ralph-fix-user-c3d4e5f6 (applied successfully)\n  - ralph-fix-api-d4e5f6a7 (applied, failed)\n\nError Signature:\n  Type: TypeError\n  Pattern: \"Cannot read property '.*' of null\"\n\nFix Approach:\n  Category: add_null_check\n  Template: |\n    if ({{variable}} == null) {\n      throw new ValidationError(\"{{message}}\");\n    }\n\nTags: typescript, null-safety, validation\n```\n\n### Prune Patterns\n\n```bash\n# Dry run\naiwg ralph-patterns prune --dry-run\n\n# Prune low-success patterns\naiwg ralph-patterns prune --min-success-rate 0.5\n\n# Prune old unused patterns\naiwg ralph-patterns prune --max-age-days 90\n```\n\n---\n\n## Integration with Other Skills\n\n### With Reflection Injection\n\nPatterns complement reflections:\n- **Reflections**: What was learned in this specific loop\n- **Patterns**: Reusable knowledge across all loops\n\nBoth are injected into new loop context.\n\n### With Auto-Test Execution\n\nPatterns inform test execution:\n- Error patterns suggest which tests to run\n- Success patterns guide test-driven approaches\n- Code templates provide test setup patterns\n\n### With Agent Loop Skill\n\nAgent loop skill triggers pattern extraction\u002Finjection:\n- On loop start: Inject relevant patterns\n- On loop completion: Extract new patterns\n- On iteration: Update pattern usage tracking\n\n---\n\n## Best Practices\n\n### 1. Let Patterns Stabilize\n\nDon't prune patterns too early. Allow 5-10 uses before evaluating:\n\n```yaml\nmin_usage_count_for_evaluation: 5\n```\n\n### 2. Tag Patterns Consistently\n\nUse standardized tags:\n- Language: `typescript`, `python`, `go`\n- Domain: `auth`, `validation`, `testing`\n- Type: `null-safety`, `async`, `error-handling`\n\n### 3. Monitor Pattern Quality\n\nRegularly review low-success patterns:\n\n```bash\naiwg ralph-patterns list --min-success-rate 0.0 --max-success-rate 0.6\n```\n\n### 4. Share Patterns Across Teams\n\nExport\u002Fimport patterns for team-wide learning:\n\n```bash\n# Export team patterns\naiwg ralph-patterns export --output team-patterns.json\n\n# Import on teammate's machine\naiwg ralph-patterns import --input team-patterns.json\n```\n\n---\n\n## Troubleshooting\n\n### Pattern Not Injected\n\n**Symptom**: Loop doesn't receive relevant pattern\n\n**Causes**:\n1. Pattern below success rate threshold\n2. Task description doesn't match semantically\n3. Injection disabled\n\n**Fix**:\n```bash\n# Check pattern\naiwg ralph-patterns show {pattern_id}\n\n# Lower threshold\naiwg ralph \"task\" --min-pattern-success-rate 0.5\n\n# Check config\ngrep -A10 \"cross_loop_learning:\" aiwg.yml\n```\n\n### Pattern Not Extracted\n\n**Symptom**: Loop completed but no patterns added\n\n**Causes**:\n1. Auto-extraction disabled\n2. Loop didn't succeed\n3. Pattern duplicates existing one\n\n**Fix**:\n```bash\n# Extract manually\naiwg ralph-extract-patterns {loop_id}\n\n# Enable auto-extraction\n# In aiwg.yml:\nralph:\n  cross_loop_learning:\n    extraction:\n      auto_extract_on_completion: true\n```\n\n---\n\n## Related\n\n- `@$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fshared-patterns.yaml` - Pattern schema\n- `@$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fcross-task-memory.yaml` - Cross-task memory\n- `@$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fdocs\u002Fcross-loop-learning.md` - Full documentation\n- `.aiwg\u002Fresearch\u002Fpaper-analysis\u002FREF-013-aiwg-analysis.md` - MetaGPT research\n- `ralph` skill - Iterative loop executor\n- `agent-loop` skill - Detects iterative loop requests\n\n---\n\n## Version History\n\n- **2.0.0**: Multi-loop awareness with loop_id tracking and cross-loop aggregation (Issue #269)\n- **1.0.0**: Initial cross-task learning with semantic matching (Issues #154, #155)\n\n## References\n\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002FREADME.md — Ralph addon overview\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fshared-patterns.yaml — Pattern schema for cross-loop learning\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fschemas\u002Fcross-task-memory.yaml — Cross-task memory schema\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002Fdocs\u002Fcross-loop-learning.md — Full cross-loop learning documentation\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fsubagent-scoping.md — Subagent scoping rules relevant to loop orchestration\n",{"name":5,"version":46,"namespace":47,"platforms":48,"description":7,"capabilities":50},"2.0.0","aiwg",[49],"all",[51,52,53,54],"semantic_task_matching","pattern_extraction","pattern_injection","cross_loop_learning","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fagent-loop\u002Fskills\u002Fcross-task-learner",36,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg","https:\u002F\u002Faiwg.io","https:\u002F\u002Fgithub.com\u002Fjmagly","https:\u002F\u002Fintegrolabs.io","ml\u002Fai, industrial automation, safety\u002Fsecurity, ssi\r\n\r\nmagly.net\r\nintegrolabs.io\r\naiwg.io\r\nfortemi.com\r\npagenary.com\r\nbytecask.com","2026-11-12 00:33:10",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add jmagly\u002Faiwg --skill cross-task-learner",{"tool":71,"command":72},"bunx","bunx skills add jmagly\u002Faiwg --skill cross-task-learner",{"tool":74,"command":75},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill cross-task-learner","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fagent-loop\u002Fskills\u002Fcross-task-learner\u002FSKILL.md",true,[79],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"manifest.json","REFERENCE","参考文档",2381,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fagent-loop\u002Fskills\u002Fcross-task-learner\u002Fmanifest.json",[86,114,138,144,151,165],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":41},"01M70QA0BSYJ49EES9V4RE8QH1","host-hardening","Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[92],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":124,"publishedAt":41},"01M70PNT2Z4HMZPRBTAF6073NN","exposure-analysis","Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fforensics\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[120,123],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[125,126,127,97,128,102,129,130,104,131,94,132,106,133,134,109,110,135,136,137],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":139,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":143,"publishedAt":41},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[142],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[96,94,95,105,97,113,100,99,108,101,102,103,104,112,106,107,98,109,110,111],{"skillNo":145,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":150,"publishedAt":41},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[148,149],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[126,125,109,128,102,129,104,127,94,132,106,133,134,97,110,131,130,135,136,137],{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":41},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[157],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[159,160,161,162,163,164],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":41},"01M6CB4AVK1W76MFMPP0JP32CJ","pi-local","Pi-local duplicate-precedence fixture.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fproviders\u002Fpi\u002Fproject\u002F.pi\u002Fskills\u002Fpi-local\u002FSKILL.md",[171],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[173,174,133,175,160],"pi","pi local","duplicate"]