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>
142 lines
3.9 KiB
YAML
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
|