[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FJME0P33115N0NHDCSVMWM":3,"skill-same:01M6FJME0P33115N0NHDCSVMWM":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6FJME0P33115N0NHDCSVMWM","continuous-learning",null,"Automatically extract patterns, best practices, and reusable knowledge from construction automation sessions to improve future performance.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdatadrivenconstruction\u002Fcontinuous-learning\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33],"learning","continuous learning","performance","automation","sessions","best practices","improve","knowledge","extract","reusable","patterns","2026-11-10 10:12:30",false,"---\r\nslug: \"continuous-learning-construction\"\r\ndisplay_name: \"Continuous Learning Construction\"\r\ndescription: \"Automatically extract patterns, best practices, and reusable knowledge from construction automation sessions to improve future performance.\"\r\n---\r\n\r\n# Continuous Learning for Construction Automation\r\n\r\nThis skill enables automatic extraction of valuable patterns, solutions, and best practices from construction automation sessions to build institutional knowledge.\r\n\r\n## When to Use\r\n\r\nActivate this skill:\r\n- At the end of complex estimation sessions\r\n- After solving non-trivial data processing problems\r\n- When discovering new integration patterns\r\n- After completing successful document processing\r\n- When developing new automation workflows\r\n\r\n## Pattern Extraction Framework\r\n\r\n### 1. Session Analysis\r\n\r\n```python\r\nclass ConstructionSessionAnalyzer:\r\n    \"\"\"Extract learnings from automation sessions\"\"\"\r\n\r\n    # Categories of learnable patterns\r\n    PATTERN_CATEGORIES = [\r\n        'data_processing',      # Data transformation patterns\r\n        'estimation',           # Cost estimation techniques\r\n        'scheduling',           # Schedule optimization patterns\r\n        'integration',          # API\u002Fsystem integration patterns\r\n        'document_processing',  # Document handling patterns\r\n        'quality_assurance',    # Validation and QA patterns\r\n        'error_handling',       # Error resolution patterns\r\n        'optimization'          # Performance optimization patterns\r\n    ]\r\n\r\n    def analyze_session(self, session_log: list) -> dict:\r\n        \"\"\"Extract patterns from session history\"\"\"\r\n\r\n        patterns = {\r\n            'successful_solutions': [],\r\n            'error_resolutions': [],\r\n            'optimization_discoveries': [],\r\n            'integration_patterns': [],\r\n            'reusable_code': [],\r\n            'decision_rationales': []\r\n        }\r\n\r\n        for entry in session_log:\r\n            if self._is_solution(entry):\r\n                patterns['successful_solutions'].append(\r\n                    self._extract_solution_pattern(entry)\r\n                )\r\n\r\n            if self._is_error_resolution(entry):\r\n                patterns['error_resolutions'].append(\r\n                    self._extract_error_pattern(entry)\r\n                )\r\n\r\n            if self._is_optimization(entry):\r\n                patterns['optimization_discoveries'].append(\r\n                    self._extract_optimization(entry)\r\n                )\r\n\r\n        return patterns\r\n```\r\n\r\n### 2. Knowledge Categories for Construction\r\n\r\n#### 2.1 Cost Estimation Patterns\r\n\r\n```yaml\r\n# Example learned pattern\r\npattern:\r\n  name: \"electrical_cost_adjustment_pattern\"\r\n  category: \"estimation\"\r\n  context: \"When estimating electrical work for high-rise buildings\"\r\n  problem: \"Standard rates don't account for vertical transportation costs\"\r\n  solution: |\r\n    Apply height factor multiplier:\r\n    - Floors 1-5: 1.0x base rate\r\n    - Floors 6-15: 1.15x base rate\r\n    - Floors 16-30: 1.25x base rate\r\n    - Floors 30+: 1.35x base rate\r\n  confidence: 0.85\r\n  source_sessions: [\"session_2026_01_15\", \"session_2026_01_20\"]\r\n  validations: 3\r\n```\r\n\r\n#### 2.2 BIM Data Processing Patterns\r\n\r\n```yaml\r\npattern:\r\n  name: \"revit_level_extraction\"\r\n  category: \"data_processing\"\r\n  context: \"Extracting elements by level from Revit exports\"\r\n  problem: \"Elements sometimes missing level association\"\r\n  solution: |\r\n    1. First check 'Level' parameter\r\n    2. If missing, check 'Reference Level' parameter\r\n    3. If still missing, derive from bounding box Z coordinate\r\n    4. Map Z ranges to known level elevations\r\n  code_snippet: |\r\n    def get_element_level(element: dict, levels: list) -> str:\r\n        # Direct level parameter\r\n        if level := element.get('Level'):\r\n            return level\r\n\r\n        # Reference level fallback\r\n        if ref_level := element.get('Reference Level'):\r\n            return ref_level\r\n\r\n        # Derive from geometry\r\n        z_coord = element['BoundingBox']['Min']['Z']\r\n        return find_nearest_level(z_coord, levels)\r\n  confidence: 0.92\r\n```\r\n\r\n#### 2.3 Integration Patterns\r\n\r\n```yaml\r\npattern:\r\n  name: \"procore_rate_limit_handling\"\r\n  category: \"integration\"\r\n  context: \"Syncing data with Procore API\"\r\n  problem: \"API returns 429 Too Many Requests during bulk operations\"\r\n  solution: |\r\n    Implement exponential backoff with jitter:\r\n    1. Initial delay: 1 second\r\n    2. Multiply by 2 on each retry\r\n    3. Add random jitter (0-500ms)\r\n    4. Max retries: 5\r\n    5. Max delay: 32 seconds\r\n  code_snippet: |\r\n    async def procore_request_with_retry(url, data):\r\n        delay = 1\r\n        for attempt in range(5):\r\n            try:\r\n                response = await procore_api.post(url, data)\r\n                return response\r\n            except RateLimitError:\r\n                jitter = random.uniform(0, 0.5)\r\n                await asyncio.sleep(delay + jitter)\r\n                delay *= 2\r\n        raise MaxRetriesExceeded()\r\n  confidence: 0.95\r\n```\r\n\r\n#### 2.4 Error Resolution Patterns\r\n\r\n```yaml\r\npattern:\r\n  name: \"cwicr_no_match_resolution\"\r\n  category: \"error_handling\"\r\n  context: \"CWICR semantic search returns no relevant matches\"\r\n  problem: \"Query too specific or uses non-standard terminology\"\r\n  solution: |\r\n    Resolution steps:\r\n    1. Simplify query to core concepts\r\n    2. Remove brand names and specifications\r\n    3. Try alternative terminology (US vs UK terms)\r\n    4. Expand search to parent category\r\n    5. If still no match, flag for manual mapping\r\n  examples:\r\n    - original: \"Kohler K-4519 wall-mounted water closet\"\r\n      simplified: \"wall mounted toilet\"\r\n    - original: \"Lutron Caseta wireless dimmer switch\"\r\n      simplified: \"dimmer switch\"\r\n  confidence: 0.88\r\n```\r\n\r\n### 3. Learning Pipeline\r\n\r\n```python\r\nclass ConstructionLearningPipeline:\r\n    \"\"\"Continuous learning pipeline for construction automation\"\"\"\r\n\r\n    def __init__(self, knowledge_base_path: str):\r\n        self.kb_path = knowledge_base_path\r\n        self.patterns = self._load_patterns()\r\n\r\n    def learn_from_session(self, session: dict) -> list:\r\n        \"\"\"Extract and store learnings from session\"\"\"\r\n\r\n        # Analyze session\r\n        analyzer = ConstructionSessionAnalyzer()\r\n        new_patterns = analyzer.analyze_session(session['log'])\r\n\r\n        # Validate patterns\r\n        validated = []\r\n        for pattern in new_patterns['successful_solutions']:\r\n            if self._validate_pattern(pattern):\r\n                # Check if similar pattern exists\r\n                existing = self._find_similar_pattern(pattern)\r\n                if existing:\r\n                    # Reinforce existing pattern\r\n                    self._reinforce_pattern(existing, pattern)\r\n                else:\r\n                    # Add new pattern\r\n                    self._add_pattern(pattern)\r\n                validated.append(pattern)\r\n\r\n        # Persist to knowledge base\r\n        self._save_patterns()\r\n\r\n        return validated\r\n\r\n    def apply_learnings(self, context: dict) -> list:\r\n        \"\"\"Retrieve relevant patterns for current context\"\"\"\r\n\r\n        relevant_patterns = []\r\n\r\n        for pattern in self.patterns:\r\n            similarity = self._calculate_similarity(pattern['context'], context)\r\n            if similarity > 0.7:\r\n                relevant_patterns.append({\r\n                    'pattern': pattern,\r\n                    'relevance': similarity\r\n                })\r\n\r\n        return sorted(relevant_patterns, key=lambda x: x['relevance'], reverse=True)\r\n\r\n    def _validate_pattern(self, pattern: dict) -> bool:\r\n        \"\"\"Validate pattern before adding to knowledge base\"\"\"\r\n\r\n        # Check minimum confidence\r\n        if pattern.get('confidence', 0) \u003C 0.6:\r\n            return False\r\n\r\n        # Check for code quality (if code snippet)\r\n        if code := pattern.get('code_snippet'):\r\n            if not self._is_valid_code(code):\r\n                return False\r\n\r\n        # Check for completeness\r\n        required_fields = ['name', 'category', 'context', 'solution']\r\n        if not all(f in pattern for f in required_fields):\r\n            return False\r\n\r\n        return True\r\n```\r\n\r\n### 4. Knowledge Base Structure\r\n\r\n```\r\nknowledge_base\u002F\r\n├── patterns\u002F\r\n│   ├── estimation\u002F\r\n│   │   ├── height_factors.yaml\r\n│   │   ├── material_adjustments.yaml\r\n│   │   └── labor_productivity.yaml\r\n│   ├── data_processing\u002F\r\n│   │   ├── revit_extraction.yaml\r\n│   │   ├── ifc_parsing.yaml\r\n│   │   └── excel_transformations.yaml\r\n│   ├── integration\u002F\r\n│   │   ├── procore_patterns.yaml\r\n│   │   ├── plangrid_patterns.yaml\r\n│   │   └── webhook_handlers.yaml\r\n│   └── error_handling\u002F\r\n│       ├── cwicr_resolutions.yaml\r\n│       ├── api_errors.yaml\r\n│       └── data_validation.yaml\r\n├── code_snippets\u002F\r\n│   ├── python\u002F\r\n│   ├── javascript\u002F\r\n│   └── sql\u002F\r\n├── decision_trees\u002F\r\n│   ├── estimate_type_selection.yaml\r\n│   ├── schedule_method_selection.yaml\r\n│   └── integration_approach.yaml\r\n└── metrics\u002F\r\n    ├── pattern_usage.json\r\n    └── success_rates.json\r\n```\r\n\r\n### 5. Session End Learning Prompt\r\n\r\nAt the end of each construction automation session:\r\n\r\n```markdown\r\n## Session Learning Review\r\n\r\n### What Worked Well\r\n- [Successful approaches discovered]\r\n- [Efficient patterns used]\r\n- [Integrations that worked smoothly]\r\n\r\n### Challenges Overcome\r\n- [Errors encountered and how resolved]\r\n- [Workarounds developed]\r\n- [Edge cases handled]\r\n\r\n### New Patterns Discovered\r\n- [Novel approaches to problems]\r\n- [Optimization techniques found]\r\n- [Reusable code created]\r\n\r\n### Knowledge to Preserve\r\n- [Key learnings to remember]\r\n- [Context-specific solutions]\r\n- [Client\u002Fproject-specific adaptations]\r\n\r\n### Recommendations for Future\r\n- [Improvements to suggest]\r\n- [Patterns to apply elsewhere]\r\n- [Automation opportunities identified]\r\n```\r\n\r\n### 6. Pattern Application\r\n\r\nWhen starting new construction tasks:\r\n\r\n```python\r\ndef suggest_approaches(task_context: dict) -> list:\r\n    \"\"\"Suggest learned approaches for new tasks\"\"\"\r\n\r\n    pipeline = ConstructionLearningPipeline('knowledge_base\u002F')\r\n    relevant = pipeline.apply_learnings(task_context)\r\n\r\n    suggestions = []\r\n    for item in relevant[:5]:  # Top 5 suggestions\r\n        pattern = item['pattern']\r\n        suggestions.append({\r\n            'name': pattern['name'],\r\n            'relevance': f\"{item['relevance']*100:.0f}%\",\r\n            'summary': pattern['solution'][:200],\r\n            'confidence': pattern['confidence'],\r\n            'previous_uses': pattern.get('usage_count', 0)\r\n        })\r\n\r\n    return suggestions\r\n```\r\n\r\n## Integration with Other Skills\r\n\r\nThis skill works with:\r\n- **verification-loop-construction**: Learn from verification failures\r\n- **security-review-construction**: Capture security patterns\r\n- **estimation skills**: Build estimation knowledge base\r\n- **integration skills**: Capture API patterns\r\n\r\n## Usage Commands\r\n\r\n```bash\r\n# Extract learnings from current session\r\n\u002Flearn\r\n\r\n# View patterns for current context\r\n\u002Fsuggest-patterns\r\n\r\n# Add manual pattern\r\n\u002Fadd-pattern --category estimation --name \"my_pattern\"\r\n\r\n# Export knowledge base\r\n\u002Fexport-kb --format yaml\r\n```\r\n\r\n---\r\n\r\n**Every session is an opportunity to learn. Capture knowledge to compound expertise over time.**\r\n","# Continuous Learning for Construction Automation\r\n\r\nThis skill enables automatic extraction of valuable patterns, solutions, and best practices from construction automation sessions to build institutional knowledge.\r\n\r\n## When to Use\r\n\r\nActivate this skill:\r\n- At the end of complex estimation sessions\r\n- After solving non-trivial data processing problems\r\n- When discovering new integration patterns\r\n- After completing successful document processing\r\n- When developing new automation workflows\r\n\r\n## Pattern Extraction Framework\r\n\r\n### 1. Session Analysis\r\n\r\n```python\r\nclass ConstructionSessionAnalyzer:\r\n    \"\"\"Extract learnings from automation sessions\"\"\"\r\n\r\n    # Categories of learnable patterns\r\n    PATTERN_CATEGORIES = [\r\n        'data_processing',      # Data transformation patterns\r\n        'estimation',           # Cost estimation techniques\r\n        'scheduling',           # Schedule optimization patterns\r\n        'integration',          # API\u002Fsystem integration patterns\r\n        'document_processing',  # Document handling patterns\r\n        'quality_assurance',    # Validation and QA patterns\r\n        'error_handling',       # Error resolution patterns\r\n        'optimization'          # Performance optimization patterns\r\n    ]\r\n\r\n    def analyze_session(self, session_log: list) -> dict:\r\n        \"\"\"Extract patterns from session history\"\"\"\r\n\r\n        patterns = {\r\n            'successful_solutions': [],\r\n            'error_resolutions': [],\r\n            'optimization_discoveries': [],\r\n            'integration_patterns': [],\r\n            'reusable_code': [],\r\n            'decision_rationales': []\r\n        }\r\n\r\n        for entry in session_log:\r\n            if self._is_solution(entry):\r\n                patterns['successful_solutions'].append(\r\n                    self._extract_solution_pattern(entry)\r\n                )\r\n\r\n            if self._is_error_resolution(entry):\r\n                patterns['error_resolutions'].append(\r\n                    self._extract_error_pattern(entry)\r\n                )\r\n\r\n            if self._is_optimization(entry):\r\n                patterns['optimization_discoveries'].append(\r\n                    self._extract_optimization(entry)\r\n                )\r\n\r\n        return patterns\r\n```\r\n\r\n### 2. Knowledge Categories for Construction\r\n\r\n#### 2.1 Cost Estimation Patterns\r\n\r\n```yaml\r\n# Example learned pattern\r\npattern:\r\n  name: \"electrical_cost_adjustment_pattern\"\r\n  category: \"estimation\"\r\n  context: \"When estimating electrical work for high-rise buildings\"\r\n  problem: \"Standard rates don't account for vertical transportation costs\"\r\n  solution: |\r\n    Apply height factor multiplier:\r\n    - Floors 1-5: 1.0x base rate\r\n    - Floors 6-15: 1.15x base rate\r\n    - Floors 16-30: 1.25x base rate\r\n    - Floors 30+: 1.35x base rate\r\n  confidence: 0.85\r\n  source_sessions: [\"session_2026_01_15\", \"session_2026_01_20\"]\r\n  validations: 3\r\n```\r\n\r\n#### 2.2 BIM Data Processing Patterns\r\n\r\n```yaml\r\npattern:\r\n  name: \"revit_level_extraction\"\r\n  category: \"data_processing\"\r\n  context: \"Extracting elements by level from Revit exports\"\r\n  problem: \"Elements sometimes missing level association\"\r\n  solution: |\r\n    1. First check 'Level' parameter\r\n    2. If missing, check 'Reference Level' parameter\r\n    3. If still missing, derive from bounding box Z coordinate\r\n    4. Map Z ranges to known level elevations\r\n  code_snippet: |\r\n    def get_element_level(element: dict, levels: list) -> str:\r\n        # Direct level parameter\r\n        if level := element.get('Level'):\r\n            return level\r\n\r\n        # Reference level fallback\r\n        if ref_level := element.get('Reference Level'):\r\n            return ref_level\r\n\r\n        # Derive from geometry\r\n        z_coord = element['BoundingBox']['Min']['Z']\r\n        return find_nearest_level(z_coord, levels)\r\n  confidence: 0.92\r\n```\r\n\r\n#### 2.3 Integration Patterns\r\n\r\n```yaml\r\npattern:\r\n  name: \"procore_rate_limit_handling\"\r\n  category: \"integration\"\r\n  context: \"Syncing data with Procore API\"\r\n  problem: \"API returns 429 Too Many Requests during bulk operations\"\r\n  solution: |\r\n    Implement exponential backoff with jitter:\r\n    1. Initial delay: 1 second\r\n    2. Multiply by 2 on each retry\r\n    3. Add random jitter (0-500ms)\r\n    4. Max retries: 5\r\n    5. Max delay: 32 seconds\r\n  code_snippet: |\r\n    async def procore_request_with_retry(url, data):\r\n        delay = 1\r\n        for attempt in range(5):\r\n            try:\r\n                response = await procore_api.post(url, data)\r\n                return response\r\n            except RateLimitError:\r\n                jitter = random.uniform(0, 0.5)\r\n                await asyncio.sleep(delay + jitter)\r\n                delay *= 2\r\n        raise MaxRetriesExceeded()\r\n  confidence: 0.95\r\n```\r\n\r\n#### 2.4 Error Resolution Patterns\r\n\r\n```yaml\r\npattern:\r\n  name: \"cwicr_no_match_resolution\"\r\n  category: \"error_handling\"\r\n  context: \"CWICR semantic search returns no relevant matches\"\r\n  problem: \"Query too specific or uses non-standard terminology\"\r\n  solution: |\r\n    Resolution steps:\r\n    1. Simplify query to core concepts\r\n    2. Remove brand names and specifications\r\n    3. Try alternative terminology (US vs UK terms)\r\n    4. Expand search to parent category\r\n    5. If still no match, flag for manual mapping\r\n  examples:\r\n    - original: \"Kohler K-4519 wall-mounted water closet\"\r\n      simplified: \"wall mounted toilet\"\r\n    - original: \"Lutron Caseta wireless dimmer switch\"\r\n      simplified: \"dimmer switch\"\r\n  confidence: 0.88\r\n```\r\n\r\n### 3. Learning Pipeline\r\n\r\n```python\r\nclass ConstructionLearningPipeline:\r\n    \"\"\"Continuous learning pipeline for construction automation\"\"\"\r\n\r\n    def __init__(self, knowledge_base_path: str):\r\n        self.kb_path = knowledge_base_path\r\n        self.patterns = self._load_patterns()\r\n\r\n    def learn_from_session(self, session: dict) -> list:\r\n        \"\"\"Extract and store learnings from session\"\"\"\r\n\r\n        # Analyze session\r\n        analyzer = ConstructionSessionAnalyzer()\r\n        new_patterns = analyzer.analyze_session(session['log'])\r\n\r\n        # Validate patterns\r\n        validated = []\r\n        for pattern in new_patterns['successful_solutions']:\r\n            if self._validate_pattern(pattern):\r\n                # Check if similar pattern exists\r\n                existing = self._find_similar_pattern(pattern)\r\n                if existing:\r\n                    # Reinforce existing pattern\r\n                    self._reinforce_pattern(existing, pattern)\r\n                else:\r\n                    # Add new pattern\r\n                    self._add_pattern(pattern)\r\n                validated.append(pattern)\r\n\r\n        # Persist to knowledge base\r\n        self._save_patterns()\r\n\r\n        return validated\r\n\r\n    def apply_learnings(self, context: dict) -> list:\r\n        \"\"\"Retrieve relevant patterns for current context\"\"\"\r\n\r\n        relevant_patterns = []\r\n\r\n        for pattern in self.patterns:\r\n            similarity = self._calculate_similarity(pattern['context'], context)\r\n            if similarity > 0.7:\r\n                relevant_patterns.append({\r\n                    'pattern': pattern,\r\n                    'relevance': similarity\r\n                })\r\n\r\n        return sorted(relevant_patterns, key=lambda x: x['relevance'], reverse=True)\r\n\r\n    def _validate_pattern(self, pattern: dict) -> bool:\r\n        \"\"\"Validate pattern before adding to knowledge base\"\"\"\r\n\r\n        # Check minimum confidence\r\n        if pattern.get('confidence', 0) \u003C 0.6:\r\n            return False\r\n\r\n        # Check for code quality (if code snippet)\r\n        if code := pattern.get('code_snippet'):\r\n            if not self._is_valid_code(code):\r\n                return False\r\n\r\n        # Check for completeness\r\n        required_fields = ['name', 'category', 'context', 'solution']\r\n        if not all(f in pattern for f in required_fields):\r\n            return False\r\n\r\n        return True\r\n```\r\n\r\n### 4. Knowledge Base Structure\r\n\r\n```\r\nknowledge_base\u002F\r\n├── patterns\u002F\r\n│   ├── estimation\u002F\r\n│   │   ├── height_factors.yaml\r\n│   │   ├── material_adjustments.yaml\r\n│   │   └── labor_productivity.yaml\r\n│   ├── data_processing\u002F\r\n│   │   ├── revit_extraction.yaml\r\n│   │   ├── ifc_parsing.yaml\r\n│   │   └── excel_transformations.yaml\r\n│   ├── integration\u002F\r\n│   │   ├── procore_patterns.yaml\r\n│   │   ├── plangrid_patterns.yaml\r\n│   │   └── webhook_handlers.yaml\r\n│   └── error_handling\u002F\r\n│       ├── cwicr_resolutions.yaml\r\n│       ├── api_errors.yaml\r\n│       └── data_validation.yaml\r\n├── code_snippets\u002F\r\n│   ├── python\u002F\r\n│   ├── javascript\u002F\r\n│   └── sql\u002F\r\n├── decision_trees\u002F\r\n│   ├── estimate_type_selection.yaml\r\n│   ├── schedule_method_selection.yaml\r\n│   └── integration_approach.yaml\r\n└── metrics\u002F\r\n    ├── pattern_usage.json\r\n    └── success_rates.json\r\n```\r\n\r\n### 5. Session End Learning Prompt\r\n\r\nAt the end of each construction automation session:\r\n\r\n```markdown\r\n## Session Learning Review\r\n\r\n### What Worked Well\r\n- [Successful approaches discovered]\r\n- [Efficient patterns used]\r\n- [Integrations that worked smoothly]\r\n\r\n### Challenges Overcome\r\n- [Errors encountered and how resolved]\r\n- [Workarounds developed]\r\n- [Edge cases handled]\r\n\r\n### New Patterns Discovered\r\n- [Novel approaches to problems]\r\n- [Optimization techniques found]\r\n- [Reusable code created]\r\n\r\n### Knowledge to Preserve\r\n- [Key learnings to remember]\r\n- [Context-specific solutions]\r\n- [Client\u002Fproject-specific adaptations]\r\n\r\n### Recommendations for Future\r\n- [Improvements to suggest]\r\n- [Patterns to apply elsewhere]\r\n- [Automation opportunities identified]\r\n```\r\n\r\n### 6. Pattern Application\r\n\r\nWhen starting new construction tasks:\r\n\r\n```python\r\ndef suggest_approaches(task_context: dict) -> list:\r\n    \"\"\"Suggest learned approaches for new tasks\"\"\"\r\n\r\n    pipeline = ConstructionLearningPipeline('knowledge_base\u002F')\r\n    relevant = pipeline.apply_learnings(task_context)\r\n\r\n    suggestions = []\r\n    for item in relevant[:5]:  # Top 5 suggestions\r\n        pattern = item['pattern']\r\n        suggestions.append({\r\n            'name': pattern['name'],\r\n            'relevance': f\"{item['relevance']*100:.0f}%\",\r\n            'summary': pattern['solution'][:200],\r\n            'confidence': pattern['confidence'],\r\n            'previous_uses': pattern.get('usage_count', 0)\r\n        })\r\n\r\n    return suggestions\r\n```\r\n\r\n## Integration with Other Skills\r\n\r\nThis skill works with:\r\n- **verification-loop-construction**: Learn from verification failures\r\n- **security-review-construction**: Capture security patterns\r\n- **estimation skills**: Build estimation knowledge base\r\n- **integration skills**: Capture API patterns\r\n\r\n## Usage Commands\r\n\r\n```bash\r\n# Extract learnings from current session\r\n\u002Flearn\r\n\r\n# View patterns for current context\r\n\u002Fsuggest-patterns\r\n\r\n# Add manual pattern\r\n\u002Fadd-pattern --category estimation --name \"my_pattern\"\r\n\r\n# Export knowledge base\r\n\u002Fexport-kb --format yaml\r\n```\r\n\r\n---\r\n\r\n**Every session is an opportunity to learn. Capture knowledge to compound expertise over time.**\r\n",{"slug":39,"description":7,"display_name":40},"continuous-learning-construction","Continuous Learning Construction","main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fdatadrivenconstruction\u002Fcontinuous-learning",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add kbarbel640-del\u002Fskills --skill continuous-learning",{"tool":54,"command":55},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill continuous-learning",{"tool":57,"command":58},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill continuous-learning","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdatadrivenconstruction\u002Fcontinuous-learning\u002FSKILL.md",true,[62],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"_meta.json","REFERENCE","参考文档",306,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdatadrivenconstruction\u002Fcontinuous-learning\u002F_meta.json",[69,99,123,144,150,170],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":80,"publishedAt":34},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[75],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[81,82,83,84,85,86,87,88,89,90,91,92,93,29,94,95,96,97,98],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","productivity","marketplace","https","content","ai agents",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":106,"publishedAt":34},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[105],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[107,83,108,109,110,111,112,26,113,114,115,116,117,118,119,120,121,88,122],"dilemm ai","arena","analyze","browser","openclaw agent","create","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":132,"publishedAt":34},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[129],{"categoryNo":130,"categoryName":131,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究",[133,134,135,136,137,138,139,84,140,120,122,141,83,142,143],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":145,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":149,"publishedAt":34},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[148],{"categoryNo":130,"categoryName":131,"taxonomyType":20,"taxonomyTypeDesc":21},[136,135,134,133,143,138,139,84,137,120,122,140,141,83,142],{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":34},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[157,158,159,160,161,162,163,164,165,166,167,168,169],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":180,"publishedAt":34},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[176,177],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":178,"categoryName":179,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000037","律师与法务",[181,182,183,184,84,185,186,41,187,141,188,189,190,191,192,96,193,194,195],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]