File Structure
Generated file layout per vendor and directory organization
Fulcrum uses a single source of truth in ai-tools/ that generates vendor-specific configuration files. Understanding this structure is key to customizing and maintaining your setup.
ai-tools/, then run npm run fulcrum:generate. Never edit generated vendor files directly.Directory Overview
your-project/
āāā ai-tools/ # āļø EDIT HERE - Canonical source
ā āāā config.json # Main configuration
ā āāā agents/ # Agent definitions
ā āāā commands/ # Slash command docs
ā āāā skills/ # Skill definitions
ā āāā prompts/ # System prompts
ā
āāā .claude/ # š GENERATED - Claude Code
āāā .cursorrules # š GENERATED - Cursor
āāā .windsurf/ # š GENERATED - Windsurf
āāā .gemini/ # š GENERATED - Gemini CLI
ā
āāā agent_docs/ # āļø EDIT HERE - Memory Bank
ā āāā projectBrief.md
ā āāā productContext.md
ā āāā ...
ā
āāā .beads/ # š MANAGED - Work tracking
āāā index.json
āāā items/ai-tools/ (Canonical Source)
This is your single source of truth. All customizations go here.
ai-tools/
āāā config.json # Configuration (vendors, agents, presets)
ā
āāā agents/
ā āāā core/ # Built-in agents
ā ā āāā work-orchestrator.md
ā ā āāā product-manager.md
ā ā āāā tech-lead.md
ā ā āāā frontend-engineer.md
ā ā āāā backend-engineer.md
ā ā āāā database-engineer.md
ā ā āāā ai-engineer.md
ā ā āāā devops-engineer.md
ā ā āāā firmware-engineer.md
ā ā āāā qa-backend.md
ā ā āāā qa-frontend.md
ā ā āāā qa-firmware.md
ā ā āāā domain-expert.md
ā ā
ā āāā custom/ # Your custom agents
ā āāā auth-specialist.md
ā āāā graphql-expert.md
ā
āāā commands/
ā āāā start.md # /start command
ā āāā execute-work.md # /execute-work command
ā āāā plan-execution.md # /plan-execution command
ā āāā create-work-item.md
ā āāā start-work-item.md
ā āāā update-work-item.md
ā āāā close-work-item.md
ā āāā handoff-work-item.md
ā āāā request-review.md
ā āāā setup-fulcrum.md
ā āāā setup-beads.md
ā āāā generate-agent.md
ā āāā manage-agents.md
ā āāā sync-handbook.md
ā
āāā skills/
ā āāā project/ # Project-level skills
ā ā āāā code-reviewer.md
ā ā āāā test-engineer.md
ā ā āāā pr-creator.md
ā ā
ā āāā user/ # User-level skills
ā āāā brainstorming.md
ā āāā systematic-debugging.md
ā āāā test-driven-development.md
ā
āāā prompts/
āāā system.md # Base system prompt
āāā rules.md # Core rules and guidelines
āāā workflows/ # Workflow-specific prompts
āāā inception.md
āāā execution.mdWhat to Edit
| File/Directory | When to Edit |
|---|---|
config.json | Change vendors, agents, or presets |
agents/custom/ | Add or modify custom agents |
skills/user/ | Add personal workflow skills |
prompts/ | Customize system behavior (advanced) |
agents/core/ or commands/are managed by Fulcrum. Your changes will be overwritten on upgrade..claude/ (Claude Code)
Generated configuration for Claude Code (formerly Claude Dev).
.claude/
āāā settings.json # Claude workspace settings
āāā commands/ # Slash commands as Claude commands
ā āāā start.md
ā āāā execute-work.md
ā āāā ...
āāā agents/ # Agent personas
ā āāā work-orchestrator.md
ā āāā ...
āāā CLAUDE.md # Main instructions fileKey Files
| File | Purpose |
|---|---|
CLAUDE.md | Primary instructions Claude reads on startup |
settings.json | Workspace configuration for Claude |
commands/ | Slash commands available in Claude |
.cursorrules (Cursor)
A single file containing all rules and agent personas for Cursor.
.cursorrules # Single file with all configuration
# Contains:
# - System prompt and rules
# - Agent personas (as sections)
# - Coding guidelines
# - Project-specific instructions.cursorrules file rather than a directory structure. All agents and rules are concatenated into this one file..windsurf/ (Windsurf)
Generated configuration for Windsurf's Cascade feature.
.windsurf/
āāā cascade.json # Cascade configuration
āāā rules/ # Rule definitions
ā āāā system.md
ā āāā agents/
ā āāā work-orchestrator.md
ā āāā ...
āāā workflows/ # Workflow templates.gemini/ (Gemini CLI)
Generated configuration for Google's Gemini CLI.
.gemini/
āāā config.json # Gemini workspace config
āāā instructions.md # Main instructions
āāā agents/ # Agent definitions
āāā work-orchestrator.md
āāā ...agent_docs/ (Memory Bank)
The Memory Bank stores persistent project knowledge that survives across sessions.
agent_docs/
āāā projectBrief.md # Project overview and goals
āāā productContext.md # Product requirements and user needs
āāā systemPatterns.md # Architecture patterns and decisions
āāā techContext.md # Technical stack and constraints
āāā activeContext.md # Current work and focus areas
āāā progress.md # Development progress log
ā
āāā specs/ # Feature specifications
ā āāā auth-system.md
ā āāā payment-integration.md
ā
āāā decisions/ # Architecture Decision Records
ā āāā 001-database-choice.md
ā āāā 002-api-design.md
ā
āāā learnings/ # Project-specific learnings
āāā performance-gotchas.md
āāā testing-patterns.mdCore Files
| File | Purpose | Updated By |
|---|---|---|
projectBrief.md | High-level project description | You (once) |
productContext.md | User needs, personas, requirements | PM agent |
systemPatterns.md | Architecture patterns in use | Tech Lead agent |
techContext.md | Tech stack, dependencies, constraints | Tech Lead agent |
activeContext.md | Current sprint/focus | Orchestrator |
progress.md | What's been done | All agents |
projectBrief.md concise (under 500 words). It's loaded into every agent's context, so brevity matters..beads/ (Work Tracking)
The Beads distributed issue tracker for work item management.
.beads/
āāā index.json # Work item index
āāā config.json # Beads configuration
ā
āāā items/ # Individual work items
ā āāā bd-auth.1.json # Feature: Add OAuth
ā āāā bd-auth.2.json # Task: Backend API
ā āāā bd-auth.3.json # Task: Frontend UI
ā āāā bd-bug.1.json # Bug: Token refresh
ā
āāā projects/ # Project definitions
ā āāā auth.json
ā
āāā mail/ # Agent async communication
āāā inbox/
āāā outbox/Work Item Structure
// .beads/items/bd-auth.1.json
{
"id": "bd-auth.1",
"title": "Add OAuth integration",
"type": "feature",
"status": "in_progress",
"priority": "P1",
"assignee": "backend-engineer",
"dependencies": [],
"children": ["bd-auth.2", "bd-auth.3"],
"created": "2024-01-15T10:30:00Z",
"updated": "2024-01-15T14:22:00Z"
}bd CLI and Fulcrum commands. You can inspect them but shouldn't edit directly..gitignore Recommendations
What to commit vs ignore:
# COMMIT these (shared team configuration)
ai-tools/
.claude/
.cursorrules
.windsurf/
.gemini/
agent_docs/
# IGNORE these (local/runtime state)
.beads/mail/ # Agent communication (ephemeral)
# CONSIDER (depends on team workflow)
.beads/items/ # Commit if you want issue history in git
.beads/index.json # Commit if you want issue state sharedEdit ā Generate ā Commit
The standard workflow for configuration changes:
# 1. Edit the canonical source
vim ai-tools/config.json
# 2. Regenerate vendor files
npm run fulcrum:generate
# 3. Review changes
git diff
# 4. Commit everything
git add ai-tools/ .claude/ .cursorrules .windsurf/ .gemini/
git commit -m "chore: update Fulcrum configuration"Monorepo Structure
For monorepos, Fulcrum supports per-package configuration:
monorepo/
āāā ai-tools/ # Root-level shared config
ā āāā config.json
ā āāā agents/
ā
āāā packages/
ā āāā web-app/
ā ā āāā ai-tools/ # Package-specific overrides
ā ā āāā config.json
ā ā
ā āāā api-server/
ā āāā ai-tools/
ā āāā config.json
ā
āāā .claude/ # Generated from root
āāā agent_docs/ # Shared Memory Bankai-tools/ for shared agents and package-level overrides for package-specific configuration.Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Changes not appearing in AI | Forgot to regenerate | Run npm run fulcrum:generate |
| Custom agent missing | Not in config.json | Add to agents.selected array |
| Vendor files out of sync | Manual edits to generated files | Delete and regenerate |
| Memory Bank not loading | Missing agent_docs/ | Run /setup-fulcrum |
| Beads errors | Corrupted index | Run bd repair |