A template for coordinating multi-repo development with OpenSpec and AI assistant (Claude Code) integration.
When working on projects that span multiple repositories (e.g., a core library + integrations + documentation), you need:
- A central place to coordinate changes across repos
- Consistent AI assistant behavior across the workspace
- Easy setup for new contributors
This template provides that foundation.
- Multi-repo coordination: Manage multiple related repositories in one workspace with centralized configuration
- OpenSpec integration: Structured change management and proposal workflow across repos (via
openspec init) - AI assistant guidance: Pre-configured
CLAUDE.mdfor Claude Code with reasoning framework and coding standards - One-command setup: Clone all sub-repos with
./script/setup - Automated initialization: Use the
workspace-initskill to set up everything interactively
Click "Use this template" button on GitHub, or use the CLI:
gh repo create my-workspace --template niracler/dev-config-template --private --clone
cd my-workspaceRun Claude Code and let the workspace-init skill guide you through the full setup:
claude
# Then say: "Help me initialize this workspace" or "帮我初始化工作区"The skill will interactively:
- Configure
repos.jsonwith your sub-repositories - Customize
CLAUDE.mdwith your role, language, and tech stack - Clone all sub-repos via
script/setup - Initialize OpenSpec for change management
- Set up dev environments (venv, npm, pre-commit) per repo
- Generate a VSCode workspace file
- Run a validation check to confirm everything is in place
If you prefer to set things up manually:
Configure your repos -- edit repos.json:
{
"repos": [
{
"name": "my-app",
"url": "https://github.com/your-org/my-app.git",
"path": "repos/my-app"
},
{
"name": "my-lib",
"url": "https://github.com/your-org/my-lib.git",
"path": "repos/my-lib"
}
]
}Clone all repos:
./script/setupCustomize CLAUDE.md -- replace the [PLACEHOLDER] tokens with your project details.
When the template is updated with new features or improvements, use the
workspace-init skill's update mode:
claude
# Then say: "Update my workspace template" or "更新工作区模板"This will detect what changed in the template, show you a diff, and apply structural updates while preserving your customizations (repos.json, filled CLAUDE.md values, OpenSpec config).
my-workspace/
├── CLAUDE.md # AI assistant guidance (customize this!)
├── AGENTS.md -> CLAUDE.md # Symlink for compatibility
├── repos.json # Sub-repo configuration
├── .gitignore # Ignores repos/ directory
├── script/
│ └── setup # Clone script
├── planning/ # Project scheduling (optional)
│ ├── README.md
│ └── schedules/
├── repos/ # Sub-repos (git-ignored)
│ ├── my-app/
│ └── my-lib/
└── README.md
These can be added after initial setup:
Create {project}.code-workspace for multi-root workspace:
{
"folders": [
{ "path": ".", "name": "Config" },
{ "path": "repos/my-app", "name": "My App" },
{ "path": "repos/my-lib", "name": "My Lib" }
]
}Note: The
workspace-initskill generates this automatically during setup.
OpenSpec provides structured change management for AI-assisted development:
# Install openspec CLI, then:
openspec initThis creates openspec/ directory with:
- Proposal workflow for planning changes
- Spec management for tracking requirements
- Integration with Claude Code slash commands
Note: The
workspace-initskill sets up OpenSpec automatically during initialization.
The planning/ directory provides lightweight project scheduling with YAML-based schedule files:
claude
# Then say: "planning init my-project"This creates a schedule YAML in planning/schedules/ that tracks modules, milestones, and delivery phases. See planning/README.md for the full schema.
Note: Requires the
workspace-planningskill for programmatic operations (progress review, status updates, Yunxiao sync).
Add custom slash commands in .claude/commands/:
.claude/
└── commands/
└── my-command.md
- CLAUDE.md template based on Xuanwo's AGENTS.md
MIT