Files
factory/factory.yaml
vitya cb9f6b033d fix(factory.yaml): v0.2.0 — interns-mcp + projects-meta-mcp as subdirs of .common, not standalone repos
The `source.type: git` blocks for interns-mcp and projects-meta-mcp pointed
to repos that don't exist as standalone (interns-mcp never existed,
projects-meta-mcp is archived). Both live as subdirectories of the .common
repo. Remove source blocks, keep deps + target + setup_skill + health_check.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 13:52:45 +03:00

142 lines
3.9 KiB
YAML

# factory.yaml — L1 manifest
# Variables: {gitea}, {projects_dir}, {factory}, {home}
# Substitution happens at runtime from ~/.config/factory/home.toml
version: "0.2.0"
# Git host configuration (overrides {gitea} default)
git_host: "https://git.kzntsv.site"
git_org: "OpeItcLoc03"
# Components to install/update
components:
# === Core infrastructure ===
- name: dot-common
display_name: ".common shared libs"
source:
type: git
url: "{git_host}/{git_org}/common"
branch: master
target: "{projects_dir}/.common"
health_check:
type: file_exists
path: "{target}/scripts/claude-switch.ps1"
clients: [claude-code, copilot-cli, gemini-cli]
- name: projects-meta-mcp
display_name: "Projects-meta MCP server"
# Subdirectory of .common repo — no standalone git source
target: "{projects_dir}/.common/lib/projects-meta-mcp"
deps: [dot-common]
setup_skill: setup-projects-meta
health_check:
type: mcp_tool
tool: mcp__projects-meta__meta_status
clients: [claude-code, copilot-cli]
- name: interns-mcp
display_name: "Interns MCP server"
# Subdirectory of .common repo — no standalone git source
target: "{projects_dir}/.common/lib/interns-mcp"
deps: [dot-common]
setup_skill: setup-interns
health_check:
type: mcp_tool
tool: mcp__interns__bulk_text_read
clients: [claude-code, copilot-cli]
# === Knowledge ===
- name: dot-wiki
display_name: "Shared project wiki"
source:
type: git
url: "{git_host}/{git_org}/projects-wiki"
branch: main
target: "{projects_dir}/.wiki"
deps: [projects-meta-mcp]
setup_skill: setup-wiki
health_check:
type: file_exists
path: "{target}/CLAUDE.md"
clients: [claude-code, copilot-cli, gemini-cli]
- name: dot-tasks
display_name: "Local task board"
target: "{projects_dir}/.tasks"
deps: [dot-wiki]
setup_skill: setup-tasks
health_check:
type: file_exists
path: "{target}/STATUS.md"
clients: [claude-code, copilot-cli, gemini-cli]
# === Tooling ===
- name: claude-skills
display_name: "Claude skills collection"
source:
type: git
url: "{git_host}/{git_org}/claude-skills"
branch: master
target: "{projects_dir}/claude-skills"
deps: [dot-common]
post_install:
shell: pwsh
script: "{target}/scripts/install.ps1"
shell_alt: bash
script_alt: "{target}/scripts/install.sh"
health_check:
type: directory_exists
path: "{home}/.claude/skills"
clients: [claude-code]
# === Fixtures (optional) ===
- name: dot-organization
display_name: "Organization roster & personas"
source:
type: git
url: "{git_host}/{git_org}/.organization"
branch: master
target: "{projects_dir}/.organization"
optional: true
health_check:
type: file_exists
path: "{target}/roster.md"
clients: [claude-code, copilot-cli, gemini-cli]
- name: dot-templates
display_name: "Project templates"
source:
type: git
url: "{git_host}/{git_org}/.templates"
branch: master
target: "{projects_dir}/.templates"
optional: true
health_check:
type: file_exists
path: "{target}/project/.gitkeep"
clients: [claude-code, copilot-cli, gemini-cli]
- name: dot-meeting-room
display_name: "Meeting room / brainstorm archive"
source:
type: git
url: "{git_host}/{git_org}/.meeting-room"
branch: master
target: "{projects_dir}/.meeting-room"
optional: true
health_check:
type: file_exists
path: "{target}/.brainstorm/.gitkeep"
clients: [claude-code, copilot-cli, gemini-cli]
# Health check types:
# file_exists: checks if file exists at {path}
# directory_exists: checks if directory exists at {path}
# mcp_tool: checks if MCP tool is available (via ~/.claude.json)
# command: runs command and checks exit code 0
# custom: runs custom health check script