AgentMarketMCP / SKILL 资产档案馆

目录 / 开发工具 / 代码生成器

SKILL 未评级 已上架

代码生成器

--- name: code-generator version: 1.0.0 description: 代码生成 - 项目脚手架/函数模板/配置文件生成,支持Python/JS/Go多语言,自动创建目录结构 tags: [code, generation, scaffolding, template, development] author: laosi source: original --- # Code Generator - 代码生成器 > 激活词: 生成代码 / code generate / 项目脚手架 ## 功能 - 项目脚手架生成(Python/JS/Go) - 函数模板(API handler/CronJob/CLI) - 配置文件生成(YAML/JSON/TOML) - 自动创建目录结构 - 代码片段库 ## Python 实现 ```python import os, json from datetime import datetime from typing import Dict, List, Optional from dataclasses import dataclass, field @dataclass class FileSpec: """文件规格""" path: str # 相对路径, e.g. "src/main.py" content: str # 文件内容 overwrite: bool = False # 是否允许覆盖 @dataclass class ProjectTemplate: """项目模板""" name: str language: str description: str files: List[FileSpec] = field(default_factory=list) def add_file(self, path: str, content: str, overwrite: bool = False): self.files.append(FileSpec(path=path, content=content, overwrite=overwrite)) def generate(self, output_dir: str) -> Dict: """生成项目到指定目录""" results = {"created": [], "skipped": [], "errors": []} for file_spec in self.files: full_path = os.path.join(output_dir, file_spec.path) os.makedirs(os.path.dirname(full_path), exist_ok=True) if os.path.exists(full_path) and not file_spec.overwrite: results["skipped"].append(file_spec.path) continue try: with open(full_path, "w", encoding="utf-8") as f: f.write(file_spec.content) results["created"].append(file_spec.path) except Exception as e: results["errors"].append(f"{file_spec.path}: {e}") return results class CodeGenerator: def __init__(self): self.templates: Dict[str, ProjectTemplate] = {} self._register_defaults() def _register_defaults(self): """注册内置模板""" # Python CLI项目 py_cli = ProjectTemplate( name="python-cli", language="python", description="Python CLI application with argparse" ) py_cli.add_file("main.py", """#!/usr/bin/env python3 import argparse def main(): parser = argparse.ArgumentParser(description="CLI tool") parser.add_argument("--verbose", action="store_true", help="Enable verbose") args = parser.parse_args() if args.verbose: print("Verbose mode enabled") print("Hello from CLI!") if __name__ == "__main__": main() """) py_cli.add_file("requirements.txt", "# Dependencies\n# requests>=2.28.0\n") py_cli.add_file(".gitignore", "*.pyc\n__pycache__/\n.env\nvenv/\n") py_cli.add_file("README.md", f"# CLI Tool\n\nAuto-generated Python CLI project\n") self.templates["python-cli"] = py_cli # FastAPI服务 fastapi_t = ProjectTemplate( name="fastapi-service", language="python", description="FastAPI REST API service" ) fastapi_t.add_file("main.py", """from fastapi import FastAPI app = FastAPI(title="API Service") @app.get("/health") def health(): return {"status": "ok"} @app.get("/api/v1/items") def list_items(): return {"items": []} """) fastapi_t.add_file("requirements.txt", "fastapi==0.110.0\nuvicorn==0.29.0\n") self.templates["fastapi-service"] = fastapi_t # JS项目 js_t = ProjectTemplate( name="node-express", language="javascript", description="Node.js Express API" ) js_t.add_file("index.js", """const express = require('express'); const app = express(); app.use(express.json()); app.get('/health', (req, res) => { res.json({ status: 'ok' }); }); app.listen(3000, () => console.log('Server running on :3000')); """) js_t.add_file("package.json", json.dumps({ "name": "api-service", "version": "1.0.0", "main": "index.js", "dependencies": {"express": "^4.18.0"} }, indent=2)) self.templates["node-express"] = js_t def list_templates(self) -> List[Dict]: return [ {"name": t.name, "language": t.language, "description": t.description, "files": len(t.files)} for t in self.templates.values() ] def generate_from_template(self, template_name: str, output_dir: str) -> Dict: """从模板生成项目""" if template_name not in self.templates: return {"error": f"Unknown template: {template_name}. Available: {list(self.templates.keys())}"} template = self.templates[template_name] os.makedirs(output_dir, exist_ok=True) return template.generate(output_dir) def generate_api_handler(self, name: str, methods: List[str]) -> str: """生成API handler代码""" method_handlers = "\n\n".join([ f"async def {m.lower()}_{name}(request):\n \"\"\"{m} /api/{name}\"\"\"\n return {{'method': '{m}', 'handler': '{name}'}}" for m in methods ]) return f""" from typing import Dict, Any # Auto-generated API handler: {name} {method_handlers} def register_routes(app): \"\"\"Register all routes for {name}\"\"\" pass """ def generate_config(self, config_type: str = "yaml") -> str: """生成配置文件""" configs = { "yaml": """# Auto-generated config app: name: my-app version: 0.1.0 debug: true env: development server: host: 0.0.0.0 port: 8080 database: url: sqlite:///data.db pool_size: 5 timeout: 30 logging: level: info format: json """, "json": json.dumps({ "app": {"name": "my-app", "version": "0.1.0", "debug": True}, "server": {"host": "0.0.0.0", "port": 8080}, "database": {"url": "sqlite:///data.db", "pool_size": 5} }, indent=2), "toml": """[app] name = "my-app" version = "0.1.0" [server] host = "0.0.0.0" port = 8080 [database] url = "sqlite:///data.db" """ } return configs.get(config_type, configs["yaml"]) # 使用示例 gen = CodeGenerator() # 列出可用模板 print("可用模板:") for t in gen.list_templates(): print(f" [{t['language']}] {t['name']}: {t['description']} ({t['files']}个文件)") # 生成Python CLI项目 result = gen.generate_from_template("python-cli", "./my-cli-tool") print(f"\n生成结果: created={result['created']}, skipped={result['skipped']}") # 生成API handler handler_code = gen.generate_api_handler("users", ["GET", "POST", "PUT", "DELETE"]) print(f"\nHandler代码 ({len(handler_code)} chars):") print(handler_code[:200] + "...") # 生成配置 config = gen.generate_config("yaml") print(f"\n配置文件 ({len(config)} chars)") ``` ## 支持的模板 | 模板名 | 语言 | 用途 | 文件数 | |--------|------|------|--------| | python-cli | Python | CLI工具 | 4 | | fastapi-service | Python | REST API | 2 | | node-express | JavaScript | Web API | 2 | ## 使用场景 1. **项目启动**: 新项目一键生成标准目录结构 2. **API开发**: 快速生成增删改查handler 3. **微服务**: 统一的服务模板,保证团队一致性 4. **学习实验**: 快速生成实验项目脚手架 ## 依赖 - Python 3.8+ - 无第三方依赖

模型生成摘要(rules/v1 · 2026-11-06 08:33):---
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。

存档时间线

版本存档时间内容哈希内容
v12026-09-21 23:26f32d177f 已过保留期
v22026-11-06 08:33bcbb0db9 可取

版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。

下载存档内容副本

相关资产

SKILL

code

Code 是一款专注于编码工作流的技能,提供从规划、实现、验证到测试的全流程支持,帮助开发者交付高质量、干净的代码

代码生成
原作者:ivangdavila 来源:腾讯 SkillHub、DeepSkill Market 许可:Proprietary 含内容副本 · 可下载 存档:v2 · 2026-10-31 hash 474ba00c
SKILL

mo-test-1

使用 p5

代码生成
原作者:moyu0032 来源:腾讯 SkillHub、DeepSkill Market 许可:Apache-2.0 含内容副本 · 可下载 存档:v2 · 2026-11-04 hash 772790db
SKILL

python-code-analyz

专业Python代码分析与优化,支持语法检查、安全扫描、性能评估、复杂度分析及重构后的优化代码生成

代码生成
原作者:sujian0606-cpu 来源:腾讯 SkillHub、DeepSkill Market 许可:MIT-0 含内容副本 · 可下载 存档:v2 · 2026-11-04 hash 877b888b
SKILL

pacp-coding-backend

PACP模块后端代码生成执行者

代码生成
原作者:user_aeb36e80 来源:腾讯 SkillHub、DeepSkill Market 许可:未标注 含内容副本 · 可下载 存档:v2 · 2026-11-04 hash 1e7dde64
SKILL

app-maker

自动完成从需求分析、页面设计、数据库建模、代码生成到可视化调试和一键部署的全栈应用开发全流程

代码生成
原作者:chall2015 来源:腾讯 SkillHub、DeepSkill Market 许可:MIT-0 含内容副本 · 可下载 存档:v2 · 2026-11-03 hash a1bd1e78
SKILL

字符索引字符串处理工具

一个基于字符索引的字符串操作协议服务器,适用于需要精确字符定位的测试代码生成和数据处理场景

代码生成
原作者:cainingnk 来源:腾讯 SkillHub、ClawHub 许可:MIT-0 含内容副本 · 可下载 存档:v5 · 2026-10-08 hash 9212e391
纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错

侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。