# factory.yaml — manifest компонентов factory # # Runtime variables (expanded from ~/.config/factory/home.toml): # {git_host} — e.g. https://git.kzntsv.site # {git_org} — e.g. OpeItcLoc03 # {projects_dir} — e.g. C:\Users\alice\projects # {factory} — {projects_dir}\.factory # {home} — user home dir (~) schema_version: "1" factory_version: "0.3.0" # ── Core (always installed) ────────────────────────────────────────────────── # # Everything in core ships inside the factory repo: # lib/ — MCP servers (built locally on install) # skills/ — skill files (copied to ~/.claude/skills/) # # bootstrap.ps1 reads this list to drive the build loop. core: components: - id: projects-meta-mcp display_name: "Projects-meta MCP server" source: lib/projects-meta-mcp version: "2.25.0" type: typescript install: run: - npm install --silent - npm run build health_check: type: mcp_tool tool: mcp__projects-meta__meta_status - id: wiki-graph display_name: "Wiki-graph MCP server" source: lib/wiki-graph version: "0.3.1" type: typescript install: run: - npm install --silent - npm run build health_check: type: mcp_tool tool: mcp__wiki-graph__stats - id: interns-mcp display_name: "Interns MCP server" source: lib/interns-mcp version: "0.3.3" type: python install: venv: .venv pip: "-e ." health_check: type: mcp_tool tool: mcp__interns__bulk_text_read - id: skills display_name: "Claude skills" source: skills version: "bundled" type: skills install: copy_to: "{home}/.claude/skills/" health_check: type: directory_exists path: "{home}/.claude/skills" # ── Modules (selected at install time) ────────────────────────────────────── # # Each module is optional. bootstrap.ps1 asks the user which to install. # creates[] describes what bootstrap creates on the user's machine/Gitea. # # create types: # local_dir — create a local directory # gitea_repo — create a repo on the user's Gitea via API # local_clone — git clone a repo locally # claude_md_snippet — append a trigger line to CLAUDE.md # setup_skill — run a setup-* skill post-install modules: - id: tasks optional: true description: "Task management — projects-meta board + per-project .tasks/" creates: - type: local_dir path: "{projects_dir}/.tasks" - type: claude_md_snippet content: "use task management system" - type: setup_skill skill: setup-tasks - id: wiki optional: true description: "Shared knowledge wiki — linked plaintext, no RAG" creates: - type: gitea_repo name: "projects-wiki" visibility: private description: "Shared project wiki" init: true - type: local_clone repo: "{git_host}/{git_org}/projects-wiki" path: "{projects_dir}/.wiki" - type: claude_md_snippet content: "use project wiki" - type: setup_skill skill: setup-wiki - id: workshop optional: true description: "Boss-zone — design work, brainstorms, archived decisions" creates: - type: gitea_repo name: ".workshop" visibility: private description: "Design workspace and brainstorm archive" init: true - type: local_clone repo: "{git_host}/{git_org}/.workshop" path: "{projects_dir}/.workshop" - id: admin optional: true description: "Ops zone — infrastructure administration and runbooks" creates: - type: gitea_repo name: ".admin" visibility: private description: "Infrastructure ops and admin notes" init: true - type: local_clone repo: "{git_host}/{git_org}/.admin" path: "{projects_dir}/.admin"