Legacy to AI-Ready Transform legacy codebases into AI-ready projects by generating Claude Code configurations. Quick Start (5-Minute Setup) For most projects, start with just CLAUDE.md: 1. Analyze : 2. Create CLAUDE.md with build commands, code style, architecture overview 3. Done - Claude can now write code following your project's conventions Expand to full configuration only when needed. Interactive Discovery Before generating configs, ask these questions: Project Scope: - What is this project? (web app, API, CLI, library) - Primary language and frameworks? - Team size? (solo, small team,…

),\n 'camelCase': re.compile(r'^[a-z]+([A-Z][a-z]+)+

Legacy to AI-Ready Transform legacy codebases into AI-ready projects by generating Claude Code configurations. Quick Start (5-Minute Setup) For most projects, start with just CLAUDE.md: 1. Analyze : 2. Create CLAUDE.md with build commands, code style, architecture overview 3. Done - Claude can now write code following your project's conventions Expand to full configuration only when needed. Interactive Discovery Before generating configs, ask these questions: Project Scope: - What is this project? (web app, API, CLI, library) - Primary language and frameworks? - Team size? (solo, small team,…

),\n 'PascalCase': re.compile(r'^[A-Z][a-z]+([A-Z][a-z]+)*

Legacy to AI-Ready Transform legacy codebases into AI-ready projects by generating Claude Code configurations. Quick Start (5-Minute Setup) For most projects, start with just CLAUDE.md: 1. Analyze : 2. Create CLAUDE.md with build commands, code style, architecture overview 3. Done - Claude can now write code following your project's conventions Expand to full configuration only when needed. Interactive Discovery Before generating configs, ask these questions: Project Scope: - What is this project? (web app, API, CLI, library) - Primary language and frameworks? - Team size? (solo, small team,…

),\n 'snake_case': re.compile(r'^[a-z]+(_[a-z]+)+

Legacy to AI-Ready Transform legacy codebases into AI-ready projects by generating Claude Code configurations. Quick Start (5-Minute Setup) For most projects, start with just CLAUDE.md: 1. Analyze : 2. Create CLAUDE.md with build commands, code style, architecture overview 3. Done - Claude can now write code following your project's conventions Expand to full configuration only when needed. Interactive Discovery Before generating configs, ask these questions: Project Scope: - What is this project? (web app, API, CLI, library) - Primary language and frameworks? - Team size? (solo, small team,…

),\n }\n\n pattern_counts = Counter()\n for name in file_names[:200]: # Sample first 200\n for pattern_name, regex in patterns.items():\n if regex.match(name):\n pattern_counts[pattern_name] += 1\n break\n\n if pattern_counts:\n most_common = pattern_counts.most_common(2)\n conventions['files']['patterns'] = [p[0] for p in most_common]\n\n return conventions\n\n\ndef generate_report(root: Path) -> dict:\n \"\"\"Generate a complete analysis report.\"\"\"\n report = {\n 'path': str(root.absolute()),\n 'structure': analyze_directory_structure(root),\n 'files': analyze_files(root),\n 'naming': extract_naming_conventions(root),\n 'git': analyze_git(root),\n 'env': analyze_env_files(root),\n 'sensitive': analyze_sensitive_files(root),\n 'gitignore': analyze_gitignore(root),\n 'cicd': analyze_cicd(root),\n }\n\n # Add language-specific analysis\n if (root / 'package.json').exists():\n report['nodejs'] = analyze_package_json(root)\n\n if (root / 'pyproject.toml').exists():\n report['python'] = analyze_pyproject(root)\n\n # Determine primary language and analyze code samples\n if report['files']['by_language']:\n primary = max(report['files']['by_language'].items(), key=lambda x: x[1])\n report['primary_language'] = primary[0]\n report['code_samples'] = analyze_code_samples(root, primary[0])\n\n # Generate recommendations\n report['recommendations'] = generate_recommendations(report)\n\n return report\n\n\ndef generate_recommendations(report: dict) -> dict:\n \"\"\"Generate AI-ready configuration recommendations based on analysis.\"\"\"\n recs = {\n 'priority': [], # Must-have configs\n 'suggested': [], # Nice-to-have configs\n 'hooks': [], # Recommended hooks\n }\n\n # Always recommend CLAUDE.md\n recs['priority'].append({\n 'config': 'CLAUDE.md',\n 'reason': 'Essential for project-wide coding standards'\n })\n\n # Check if rules are needed\n langs = report['files'].get('by_language', {})\n if len([l for l in langs if langs[l] > 10 and l != 'other']) > 1:\n recs['priority'].append({\n 'config': '.claude/rules/',\n 'reason': 'Multi-language project needs language-specific rules'\n })\n\n # Check if skills are needed based on frameworks\n frameworks = []\n if report.get('nodejs', {}).get('frameworks'):\n frameworks.extend(report['nodejs']['frameworks'])\n if report.get('python', {}).get('frameworks'):\n frameworks.extend(report['python']['frameworks'])\n\n if any(fw in ['Prisma ORM', 'Drizzle ORM', 'TypeORM', 'SQLAlchemy'] for fw in frameworks):\n recs['suggested'].append({\n 'config': '.claude/skills/database/',\n 'reason': 'ORM detected - document query patterns and migrations'\n })\n\n if any(fw in ['Express.js', 'Fastify', 'NestJS', 'FastAPI', 'Django', 'Flask'] for fw in frameworks):\n recs['suggested'].append({\n 'config': '.claude/skills/api/',\n 'reason': 'Web framework detected - document API patterns'\n })\n\n # Check for test framework\n test_files = report['files'].get('test_files', 0)\n if test_files > 5:\n recs['suggested'].append({\n 'config': '.claude/commands/test.md',\n 'reason': f'{test_files} test files detected - create test command'\n })\n\n # Recommend hooks based on tools\n tools = [c.get('tool') for c in report['files'].get('tool_configs', [])]\n if 'prettier' in tools or 'eslint' in tools:\n recs['hooks'].append({\n 'hook': 'PostToolUse format',\n 'reason': 'Auto-format on file edit'\n })\n if 'black' in tools or 'ruff' in tools:\n recs['hooks'].append({\n 'hook': 'PostToolUse format',\n 'reason': 'Python auto-format on file edit'\n })\n\n # Git workflow recommendation\n if report.get('git', {}).get('commit_patterns'):\n patterns = report['git']['commit_patterns']\n if 'conventional-commits' in patterns:\n recs['suggested'].append({\n 'config': '.claude/commands/commit.md',\n 'reason': 'Conventional commits detected - enforce format'\n })\n\n return recs\n\n\ndef format_markdown(report: dict) -> str:\n \"\"\"Format report as markdown.\"\"\"\n lines = [\n \"# Codebase Analysis Report\",\n \"\",\n f\"**Path:** `{report['path']}`\",\n \"\",\n \"## Summary\",\n \"\",\n f\"- **Total Files:** {report['files']['total_files']}\",\n f\"- **Test Files:** {report['files']['test_files']}\",\n f\"- **Primary Language:** {report.get('primary_language', 'unknown')}\",\n \"\",\n \"## Languages\",\n \"\",\n ]\n\n for lang, count in report['files']['by_language'].items():\n lines.append(f\"- {lang}: {count} files\")\n\n lines.extend([\n \"\",\n \"## Directory Structure\",\n \"\",\n \"### Root Directories\",\n \"\",\n ])\n\n for dir_name in report['structure']['root_dirs']:\n lines.append(f\"- `{dir_name}/`\")\n\n if report['structure']['patterns']:\n lines.extend([\n \"\",\n \"### Detected Patterns\",\n \"\",\n ])\n for pattern in report['structure']['patterns']:\n lines.append(f\"- `{pattern['dir']}/` - {pattern['purpose']}\")\n\n if report['files']['tool_configs']:\n lines.extend([\n \"\",\n \"## Development Tools\",\n \"\",\n ])\n for config in report['files']['tool_configs']:\n lines.append(f\"- {config['tool']} (`{config['file']}`)\")\n\n if report.get('nodejs'):\n lines.extend([\n \"\",\n \"## Node.js Project\",\n \"\",\n f\"**Name:** {report['nodejs']['name']}\",\n \"\",\n \"### Scripts\",\n \"\",\n ])\n for script, cmd in report['nodejs']['scripts'].items():\n lines.append(f\"- `{script}`: `{cmd}`\")\n\n if report['nodejs']['frameworks']:\n lines.extend([\n \"\",\n \"### Frameworks & Libraries\",\n \"\",\n ])\n for fw in report['nodejs']['frameworks']:\n lines.append(f\"- {fw}\")\n\n if report.get('python'):\n lines.extend([\n \"\",\n \"## Python Project\",\n \"\",\n ])\n if report['python'].get('tools'):\n lines.append(\"### Tools\")\n for tool in report['python']['tools']:\n lines.append(f\"- {tool}\")\n if report['python'].get('frameworks'):\n lines.append(\"\")\n lines.append(\"### Frameworks\")\n for fw in report['python']['frameworks']:\n lines.append(f\"- {fw}\")\n\n if report.get('git'):\n lines.extend([\n \"\",\n \"## Git Configuration\",\n \"\",\n ])\n if report['git'].get('hooks'):\n lines.append(\"### Hooks\")\n for hook in report['git']['hooks']:\n lines.append(f\"- {hook}\")\n if report['git'].get('commit_patterns'):\n lines.append(\"\")\n lines.append(\"### Commit Patterns Detected\")\n for pattern in report['git']['commit_patterns']:\n lines.append(f\"- {pattern}\")\n\n if report.get('env', {}).get('env_files'):\n lines.extend([\n \"\",\n \"## Environment Files\",\n \"\",\n ])\n for env_file in report['env']['env_files']:\n lines.append(f\"- `{env_file}`\")\n if report['env'].get('env_vars'):\n lines.append(\"\")\n lines.append(\"### Environment Variables\")\n for var in report['env']['env_vars'][:10]:\n lines.append(f\"- `{var}`\")\n\n if report.get('code_samples'):\n samples = report['code_samples']\n if samples.get('import_style') or samples.get('comment_style'):\n lines.extend([\n \"\",\n \"## Code Style Detected\",\n \"\",\n ])\n if samples.get('import_style'):\n lines.append(f\"- **Import style:** {samples['import_style']}\")\n if samples.get('comment_style'):\n lines.append(f\"- **Comment style:** {samples['comment_style']}\")\n if samples.get('sample_files'):\n lines.append(\"\")\n lines.append(\"**Sample files for reference:**\")\n for f in samples['sample_files']:\n lines.append(f\"- `{f}`\")\n\n # CI/CD section\n if report.get('cicd', {}).get('detected'):\n lines.extend([\n \"\",\n \"## CI/CD\",\n \"\",\n ])\n for ci in report['cicd']['detected']:\n lines.append(f\"- {ci}\")\n if report['cicd'].get('files'):\n lines.append(\"\")\n lines.append(\"**Config files:**\")\n for f in report['cicd']['files'][:5]:\n lines.append(f\"- `{f}`\")\n\n # Security section\n if report.get('sensitive', {}).get('found'):\n lines.extend([\n \"\",\n \"## Security Warning\",\n \"\",\n \"**Sensitive files detected** - Add to .claudeignore:\",\n \"\",\n ])\n for f in report['sensitive']['found'][:10]:\n lines.append(f\"- `{f}`\")\n\n if report['sensitive'].get('claudeignore_suggestions'):\n lines.extend([\n \"\",\n \"**Suggested .claudeignore:**\",\n \"```\",\n ])\n for pattern in report['sensitive']['claudeignore_suggestions']:\n lines.append(pattern)\n lines.append(\"```\")\n\n # Recommendations section\n if report.get('recommendations'):\n recs = report['recommendations']\n lines.extend([\n \"\",\n \"---\",\n \"\",\n \"## AI-Ready Configuration Recommendations\",\n \"\",\n ])\n\n if recs.get('priority'):\n lines.append(\"### Priority (Required)\")\n for rec in recs['priority']:\n lines.append(f\"- **{rec['config']}** - {rec['reason']}\")\n lines.append(\"\")\n\n if recs.get('suggested'):\n lines.append(\"### Suggested\")\n for rec in recs['suggested']:\n lines.append(f\"- **{rec['config']}** - {rec['reason']}\")\n lines.append(\"\")\n\n if recs.get('hooks'):\n lines.append(\"### Hooks to Configure\")\n for rec in recs['hooks']:\n lines.append(f\"- **{rec['hook']}** - {rec['reason']}\")\n\n return '\\n'.join(lines)\n\n\ndef main():\n parser = argparse.ArgumentParser(description='Analyze a codebase for AI-ready conversion')\n parser.add_argument('path', nargs='?', default='.', help='Path to analyze (default: current directory)')\n parser.add_argument('--output', '-o', choices=['json', 'markdown'], default='markdown',\n help='Output format (default: markdown)')\n\n args = parser.parse_args()\n root = Path(args.path).resolve()\n\n if not root.exists():\n print(f\"Error: Path does not exist: {root}\")\n return 1\n\n report = generate_report(root)\n\n if args.output == 'json':\n print(json.dumps(report, indent=2))\n else:\n print(format_markdown(report))\n\n return 0\n\n\nif __name__ == '__main__':\n exit(main())\n","content_type":"text/x-python; charset=utf-8","language":"python","size":30607,"content_sha256":"439fb321dddc6c6999ad693bb529a59607a4b15bfeb2f942e47c2952bc188763"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Legacy to AI-Ready","type":"text"}]},{"type":"paragraph","content":[{"text":"Transform legacy codebases into AI-ready projects by generating Claude Code configurations.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Quick Start (5-Minute Setup)","type":"text"}]},{"type":"paragraph","content":[{"text":"For most projects, start with just CLAUDE.md:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Analyze","type":"text","marks":[{"type":"strong"}]},{"text":": ","type":"text"},{"text":"python scripts/analyze_codebase.py [path]","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Create CLAUDE.md","type":"text","marks":[{"type":"strong"}]},{"text":" with build commands, code style, architecture overview","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Done","type":"text","marks":[{"type":"strong"}]},{"text":" - Claude can now write code following your project's conventions","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Expand to full configuration only when needed.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Interactive Discovery","type":"text"}]},{"type":"paragraph","content":[{"text":"Before generating configs, ask these questions:","type":"text"}]},{"type":"paragraph","content":[{"text":"Project Scope:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What is this project? (web app, API, CLI, library)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Primary language and frameworks?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Team size? (solo, small team, enterprise)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Pain Points:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What mistakes do new developers commonly make?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What patterns should always be followed?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What operations are repeated frequently?","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Integration Needs:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"External services used? (databases, APIs, cloud)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CI/CD pipeline? (GitHub Actions, Jenkins)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Code quality tools? (linters, formatters)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Configuration Decision Tree","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Start\n│\n├─ Small project / Solo dev\n│ └─ CLAUDE.md only\n│\n├─ Team project\n│ ├─ Multi-language? → Add .claude/rules/\n│ ├─ Complex domain? → Add .claude/skills/\n│ ├─ Code reviews? → Add .claude/agents/\n│ └─ Repeated tasks? → Add .claude/commands/\n│\n└─ Enterprise / Large team\n └─ All configurations + MCP servers + Hooks","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Generated Configurations","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Config","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Purpose","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"When to Create","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"CLAUDE.md","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Project memory (shared)","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Always (required)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"CLAUDE.local.md","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Personal preferences (git-ignored)","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Individual customization","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".claudeignore","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Files Claude should not access","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Sensitive files exist","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".claude/rules/","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Path-specific rules","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Multi-module projects","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".claude/skills/","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Domain knowledge","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Complex business logic","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".claude/agents/","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Task specialists","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Repeated review/debug tasks","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".claude/commands/","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Quick prompts","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Common workflows","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".claude/settings.json","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Hooks + permissions","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Auto-formatting, security","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"MCP servers","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"External tools","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Database/API integrations","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 1: Automated Analysis","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python scripts/analyze_codebase.py [project-path]","type":"text"}]},{"type":"paragraph","content":[{"text":"The script detects:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Languages and frameworks","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Directory structure patterns","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Development tools (linters, formatters)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Git commit patterns","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Environment variables","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Code style indicators","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CI/CD configurations","type":"text","marks":[{"type":"strong"}]},{"text":" (GitHub Actions, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Sensitive files","type":"text","marks":[{"type":"strong"}]},{"text":" (warns about .env, credentials)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Output includes:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recommendations for which configs to create","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Security warnings for sensitive files","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Suggested .claudeignore patterns","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 2: Context Gathering","type":"text"}]},{"type":"paragraph","content":[{"text":"Claude should read:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"3-5 representative source files","type":"text","marks":[{"type":"strong"}]},{"text":" - understand naming, patterns","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Test files","type":"text","marks":[{"type":"strong"}]},{"text":" - understand testing approach","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Config files","type":"text","marks":[{"type":"strong"}]},{"text":" - package.json, tsconfig, etc.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"README/docs","type":"text","marks":[{"type":"strong"}]},{"text":" - project overview","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recent commits","type":"text","marks":[{"type":"strong"}]},{"text":" - understand commit style","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 2.5: Discover Existing Resources","type":"text"}]},{"type":"paragraph","content":[{"text":"Before creating custom configs, search for existing skills and MCP servers:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Search skill marketplaces","type":"text","marks":[{"type":"strong"}]},{"text":" - SkillsMP, SkillHub.club, Claude Skills Hub","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check GitHub repositories","type":"text","marks":[{"type":"strong"}]},{"text":" - awesome-claude-skills, themed skill collections","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Find relevant MCP servers","type":"text","marks":[{"type":"strong"}]},{"text":" - Glama, MCP Market, official registry","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/resource-discovery.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/resource-discovery.md","title":null}}]},{"text":" for complete directory of sources.","type":"text"}]},{"type":"paragraph","content":[{"text":"Tip","type":"text","marks":[{"type":"strong"}]},{"text":": Many common needs (git commit, code review, database patterns) already have well-maintained skills available.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 3: Generate Configurations","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"1. CLAUDE.md (Required)","type":"text"}]},{"type":"paragraph","content":[{"text":"Create at project root with:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Quick reference commands (build, test, lint)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Naming conventions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Architecture overview","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Testing guidelines","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Git workflow","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/claude-md-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/claude-md-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"2. Rules (If Multi-Module)","type":"text"}]},{"type":"paragraph","content":[{"text":"Create ","type":"text"},{"text":".claude/rules/","type":"text","marks":[{"type":"code_inline"}]},{"text":" when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Multiple languages need different conventions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Modules have distinct patterns (frontend/backend)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Path-specific requirements exist","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/rules-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/rules-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"3. Skills (If Complex Domain)","type":"text"}]},{"type":"paragraph","content":[{"text":"Create ","type":"text"},{"text":".claude/skills/","type":"text","marks":[{"type":"code_inline"}]},{"text":" when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Domain-specific workflows exist (database, API patterns)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Team knowledge needs preservation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Complex procedures are repeated","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/skills-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/skills-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"4. Subagents (If Specialized Tasks)","type":"text"}]},{"type":"paragraph","content":[{"text":"Create ","type":"text"},{"text":".claude/agents/","type":"text","marks":[{"type":"code_inline"}]},{"text":" for:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Code review automation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Debugging assistance","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Security auditing","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Documentation generation","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/agents-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/agents-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"5. Commands (If Common Operations)","type":"text"}]},{"type":"paragraph","content":[{"text":"Create ","type":"text"},{"text":".claude/commands/","type":"text","marks":[{"type":"code_inline"}]},{"text":" for:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Git commit workflow","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"PR review process","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Deployment steps","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Test running","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/commands-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/commands-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"6. Hooks (If Auto-Formatting Needed)","type":"text"}]},{"type":"paragraph","content":[{"text":"Configure ","type":"text"},{"text":".claude/settings.json","type":"text","marks":[{"type":"code_inline"}]},{"text":" for:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Auto-format on file edit","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Protected files","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Command logging","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/hooks-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/hooks-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":4},"content":[{"text":"7. MCP Servers (If External Integrations)","type":"text"}]},{"type":"paragraph","content":[{"text":"Configure MCP for:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Database access","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"GitHub integration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Slack notifications","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Custom internal tools","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"See ","type":"text"},{"text":"references/mcp-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/mcp-patterns.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase 4: Validate","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ask Claude to perform a typical task","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify it follows project conventions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Iterate based on gaps discovered","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Output Structure","type":"text"}]},{"type":"paragraph","content":[{"text":"Minimal (small projects):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"project/\n├── CLAUDE.md\n└── [existing files]","type":"text"}]},{"type":"paragraph","content":[{"text":"Standard (team projects):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"project/\n├── CLAUDE.md\n├── .claude/\n│ ├── rules/\n│ │ └── code-style.md\n│ └── commands/\n│ └── commit.md\n└── [existing files]","type":"text"}]},{"type":"paragraph","content":[{"text":"Complete (enterprise):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"project/\n├── CLAUDE.md # Shared project memory\n├── CLAUDE.local.md # Personal (git-ignored)\n├── .claudeignore # Files to protect\n├── .claude/\n│ ├── settings.json # Hooks + permissions\n│ ├── rules/\n│ ├── skills/\n│ ├── agents/\n│ └── commands/\n└── [existing files]","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Reference Materials","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Reference","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"When to Read","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"examples.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/examples.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Complete real-world examples","type":"text","marks":[{"type":"strong"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"resource-discovery.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/resource-discovery.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Find existing skills & MCP servers","type":"text","marks":[{"type":"strong"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"advanced-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/advanced-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Migrations, team collab, monorepos","type":"text","marks":[{"type":"strong"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"claude-md-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/claude-md-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Creating CLAUDE.md","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"rules-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/rules-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Module-specific rules","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"skills-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/skills-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Domain knowledge","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"agents-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/agents-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Task specialists","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"commands-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/commands-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Quick prompts","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"hooks-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/hooks-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Auto-formatting","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"mcp-patterns.md","type":"text","marks":[{"type":"link","attrs":{"href":"references/mcp-patterns.md","title":null}}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"External tools","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Templates & Bundled Skills","type":"text"}]},{"type":"paragraph","content":[{"text":"Templates:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/CLAUDE.md.template","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Project memory template","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/settings.json.template","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Hooks configuration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/claudeignore.template","type":"text","marks":[{"type":"code_inline"}]},{"text":" - File ignore patterns","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Bundled skills to install in target project:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/skill-creator/","type":"text","marks":[{"type":"code_inline"}]},{"text":" - For creating new project-specific skills","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/skill-downloader/","type":"text","marks":[{"type":"code_inline"}]},{"text":" - For downloading additional skills","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/resource-scout/","type":"text","marks":[{"type":"code_inline"}]},{"text":" - For discovering existing skills & MCP servers","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Installing Bundled Skills","type":"text"}]},{"type":"paragraph","content":[{"text":"Copy these skills to the target project's ","type":"text"},{"text":".claude/skills/","type":"text","marks":[{"type":"code_inline"}]},{"text":" directory:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"cp -r assets/skill-creator [target-project]/.claude/skills/\ncp -r assets/skill-downloader [target-project]/.claude/skills/\ncp -r assets/resource-scout [target-project]/.claude/skills/","type":"text"}]},{"type":"paragraph","content":[{"text":"This enables the target project to:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"resource-scout","type":"text","marks":[{"type":"strong"}]},{"text":" - Discover existing skills & MCP servers before building custom","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"skill-downloader","type":"text","marks":[{"type":"strong"}]},{"text":" - Download and install skills from GitHub or archives","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"skill-creator","type":"text","marks":[{"type":"strong"}]},{"text":" - Create custom skills tailored to their domain","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Language Quick Reference","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"TypeScript/JavaScript","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Extract: eslint, prettier, tsconfig","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hooks: prettier auto-format","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skills: API patterns, component patterns","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Python","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Extract: black, ruff, mypy, pyproject.toml","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hooks: black/ruff auto-format","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skills: API patterns, ORM patterns","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Go","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Extract: gofmt, golangci-lint","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hooks: gofmt auto-format","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skills: error handling patterns","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Rust","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Extract: rustfmt, clippy","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hooks: rustfmt auto-format","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skills: error handling, async patterns","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"legacy-to-ai-ready","author":"@skillopedia","source":{"stars":199,"repo_name":"ai-workflow","origin_url":"https://github.com/nicepkg/ai-workflow/blob/HEAD/.claude/skills/legacy-to-ai-ready/SKILL.md","repo_owner":"nicepkg","body_sha256":"50273a697dbabb646e3e9c71ccd08d54274f56fb6786d5ebb66743bc58ec2b20","cluster_key":"821bd3fe52e981fbc6159d67de252ef3ca201041e930fcc571d3d9753f3575f4","clean_bundle":{"format":"clean-skill-bundle-v1","source":"nicepkg/ai-workflow/.claude/skills/legacy-to-ai-ready/SKILL.md","attachments":[{"id":"d1555ad6-2d0d-575f-8462-3a06e55bf17e","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/d1555ad6-2d0d-575f-8462-3a06e55bf17e/attachment.template","path":"assets/CLAUDE.md.template","size":1111,"sha256":"e65d970b155d28ab26fc60b7319cbde0fcc780a2173f5bea6454e7bc3b5936f0","contentType":"text/plain; charset=utf-8"},{"id":"6d6a314c-7a1f-56c8-a504-add4ea042895","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/6d6a314c-7a1f-56c8-a504-add4ea042895/attachment.template","path":"assets/claudeignore.template","size":812,"sha256":"f67afe7a00965cd98fe465dda1f5a25af5fe2b8732c7c0d479d51d368021a73e","contentType":"text/plain; charset=utf-8"},{"id":"f09cb5b7-3847-572f-a37d-55af17e8f96f","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/f09cb5b7-3847-572f-a37d-55af17e8f96f/attachment.template","path":"assets/settings.json.template","size":430,"sha256":"beca47d74c0b549e0f38d8e21d905fe032ae9b00c11bca6dbce2754081b818d7","contentType":"text/plain; charset=utf-8"},{"id":"6dd49450-77a0-558d-8c3b-b829441dbe36","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/6dd49450-77a0-558d-8c3b-b829441dbe36/attachment.md","path":"references/advanced-patterns.md","size":8879,"sha256":"37527e460bd15ca62023ad5d1fe54dee2661bcb66a0bb5ddb8886a277c9a868b","contentType":"text/markdown; charset=utf-8"},{"id":"71ad4b05-eb8a-5069-afec-2dc06826dd5a","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/71ad4b05-eb8a-5069-afec-2dc06826dd5a/attachment.md","path":"references/agents-patterns.md","size":5925,"sha256":"cc48fc09b48613c899af5c772adf7907f429440fb7352b6e57e42cbde7585beb","contentType":"text/markdown; charset=utf-8"},{"id":"83599c52-677b-57c9-a048-2c13543cb1e8","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/83599c52-677b-57c9-a048-2c13543cb1e8/attachment.md","path":"references/claude-md-patterns.md","size":3824,"sha256":"7fcbbcb997724cb43a8a6c6f9ee5ae6d2b63fcb0fa52976d3389b403d8233ce9","contentType":"text/markdown; charset=utf-8"},{"id":"38bfd96a-0760-50e8-9407-63cad4c82666","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/38bfd96a-0760-50e8-9407-63cad4c82666/attachment.md","path":"references/commands-patterns.md","size":6096,"sha256":"f6a488ad7bd54c75487dcbfefc1a329c03b4f98a6d7a3fb2e73aff83f5b69947","contentType":"text/markdown; charset=utf-8"},{"id":"4c27c7be-90fa-5591-aa66-71fb4e677a8d","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/4c27c7be-90fa-5591-aa66-71fb4e677a8d/attachment.md","path":"references/examples.md","size":9577,"sha256":"76fa9f60e6163e108ef6eee203c800f21514860aadf3fed9faa236e744f7efde","contentType":"text/markdown; charset=utf-8"},{"id":"2f2e6599-1d0e-557c-bbaf-881b6c7ac9de","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/2f2e6599-1d0e-557c-bbaf-881b6c7ac9de/attachment.md","path":"references/hooks-patterns.md","size":6692,"sha256":"a35951413bb22b7da198b7a314e99e323b88da93777f2674752b61f46079c690","contentType":"text/markdown; charset=utf-8"},{"id":"57b41e9b-e7a5-52d4-8281-804b57c99572","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/57b41e9b-e7a5-52d4-8281-804b57c99572/attachment.md","path":"references/mcp-patterns.md","size":3996,"sha256":"854c6c58b4275478ae20f250387bf53efc18a0a7cd25dd03b2ef8b3f9169b4e4","contentType":"text/markdown; charset=utf-8"},{"id":"0c665d5f-060b-5b0a-af1d-1bd3fe905de9","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/0c665d5f-060b-5b0a-af1d-1bd3fe905de9/attachment.md","path":"references/resource-discovery.md","size":4958,"sha256":"df337a554203d27d3946d11eca50bae20d128db29b025fa2c1724c2e3249f3d8","contentType":"text/markdown; charset=utf-8"},{"id":"599955d6-98f8-5f96-85dd-b1cb67abc86f","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/599955d6-98f8-5f96-85dd-b1cb67abc86f/attachment.md","path":"references/rules-patterns.md","size":5604,"sha256":"38991d640b6450a3e3909478eb771d23afb4ff49c3a2ede2cc2a1adb54e45ad1","contentType":"text/markdown; charset=utf-8"},{"id":"85c1a5b6-a50c-574c-a2e0-5911568f5961","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/85c1a5b6-a50c-574c-a2e0-5911568f5961/attachment.md","path":"references/skills-patterns.md","size":5013,"sha256":"93127fbd9866c0afc3f442145df740a03f8b6722df624ff7b8703e160e41a608","contentType":"text/markdown; charset=utf-8"},{"id":"6ab20e54-b7e3-557a-95b3-65e3d731cfe9","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/6ab20e54-b7e3-557a-95b3-65e3d731cfe9/attachment.py","path":"scripts/analyze_codebase.py","size":30607,"sha256":"439fb321dddc6c6999ad693bb529a59607a4b15bfeb2f942e47c2952bc188763","contentType":"text/x-python; charset=utf-8"}],"bundle_sha256":"0a3c912b7a9175107aeabcb6c4a7976faf8ca11bf8e441c8f016693a89a669ab","attachment_count":14,"text_attachments":11,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":3,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":".claude/skills/legacy-to-ai-ready/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"software-engineering","category_label":"Engineering"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"software-engineering","import_tag":"clean-skills-v1","description":"Transform legacy codebases into AI-ready projects with Claude Code configurations. Use when (1) analyzing old projects to generate AI coding configurations, (2) creating CLAUDE.md, skills, subagents, slash commands, hooks, or rules for existing projects, (3) user wants to enable vibe coding for a codebase, (4) onboarding new team members with AI-assisted development, (5) user mentions \"make project AI-ready\", \"generate Claude config\", or \"create coding standards for AI\"."}},"renderedAt":1782982025267}

Legacy to AI-Ready Transform legacy codebases into AI-ready projects by generating Claude Code configurations. Quick Start (5-Minute Setup) For most projects, start with just CLAUDE.md: 1. Analyze : 2. Create CLAUDE.md with build commands, code style, architecture overview 3. Done - Claude can now write code following your project's conventions Expand to full configuration only when needed. Interactive Discovery Before generating configs, ask these questions: Project Scope: - What is this project? (web app, API, CLI, library) - Primary language and frameworks? - Team size? (solo, small team,…