Replies: 2 comments 1 reply
-
|
Thanks for the detailed proposal — the three-phase structure is well thought out and clearly a lot of work went into this. Really appreciate you thinking this deeply about where CCO could go. I want to push back on the Phase 1 premise though, because I think the gap is narrower than it appears. MCP servers and plugins already have
|
Beta Was this translation helpful? Give feedback.
-
|
That said — this is just how I'm seeing it right now, and I could be missing something. Is there a use case you're hitting where the Curious to hear your perspective — you've clearly spent more time thinking about the workflows here than I have. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Great job on this project! CCO is exactly the tool this ecosystem was missing. Being able to see everything in one place and move things between scopes has already saved me hours of manual JSON editing. This proposal is meant to build on that foundation — three-phased enhancements that each deliver standalone value.
Phase 1: Holding Area Scope
The foundation. A dedicated, inert scope for parking artifacts you want to keep but don't want active.
The problem
Moving an artifact out of a project today means:
There's no way to say: "Keep this, but don't load it anywhere right now."
The solution
A new scope called Holding at
~/.claude/holding/. It appears as its own section in the CCO dashboard alongside Global and Project scopes. Items in holding are not loaded by Claude Code — they're inert storage. A personal library, not an active scope.Supported artifact types
~/.claude/holding/skills/<name>/SKILL.md~/.claude/holding/.mcp.json~/.claude/holding/commands/<name>.md~/.claude/holding/plugins/<name>/Other artifact types (memories, rules, agents) remain in Global/Project scopes only.
Copy and Move
The key differentiator: the holding area supports copy, not just move.
Deploying from holding to a project:
Ingesting from a project into holding:
Example workflow
Implementation notes
Scanner (
scanner.mjs):id: "holding",type: "holding",name: "Holding Area"~/.claude/holding/subdirectories for each supported typetag: "holding") for UI stylingMover (
mover.mjs):copyItem()function — mirrorsmoveItem()but skips the delete-from-source stepresolveHoldingDir()functions for each artifact typevalidateMove()rejects unsupported types moving to holdingUI (
app.js):What the holding area is NOT
~/.claude/Phase 2: Settings Fragments
Extends holding with reusable configuration snippets that merge into project settings.
Depends on: Phase 1 (uses the holding area for storage)
The problem
Some settings are project-specific but repetitive. Configuring
planStorageto use a local.plans/folder is useful across many projects, but you have to manually edit each project's.claude/settings.json. There's no way to save a setting once and stamp it wherever you need it.The solution
Named JSON fragments stored in holding that can be merged into any project's
settings.jsonon demand.Storage format
Each fragment:
{ "name": "Local plans folder", "description": "Store plans in project .plans/ directory instead of ~/.claude/projects/", "fragment": { "planStorage": { "type": "project", "path": ".plans" } } }Operations
.claude/settings.json. Creates the file if needed. Original preserved.Why fragments, not full settings files
Example fragments
plans-local-folderplanStorage.type: "project",planStorage.path: ".plans"strict-tool-permissionspermissions.allow: [],permissions.deny: ["Bash(*)", "Write(*)"]auto-compact-aggressiveautoCompact: true,autoCompactThreshold: 60custom-model-defaultsmodel: "claude-sonnet-4-6",smallModel: "claude-haiku-4-5"hook-bundle-lintinghooks.preToolCall: [{ "command": "eslint ...", "blocking": true }]Phase 3: Project Templates
Extends holding with named bundles that deploy a full project setup in one click.
Depends on: Phase 1 (artifacts to bundle), optionally Phase 2 (settings fragments in bundles)
The problem
Even with a holding area full of great configs, setting up a new project means manually copying 5-10 items one at a time. Every React project needs the same set of skills, MCP servers, and settings. Every Node API project needs a different set. The selection is repetitive and error-prone.
The solution
Named templates that reference items in the holding area. Pick a template, pick a target project, one click — everything gets copied in.
Storage format
Each template:
{ "name": "React Project", "description": "Standard setup for React frontend projects", "items": [ { "type": "skill", "name": "frontend-design" }, { "type": "skill", "name": "webapp-testing" }, { "type": "mcp", "name": "Playwright" }, { "type": "mcp", "name": "Pencil" }, { "type": "command", "name": "component-scaffold" }, { "type": "settings-fragment", "name": "strict-permissions" }, { "type": "settings-fragment", "name": "plans-local-folder" }, { "type": "plugin", "name": "eslint-integration" } ] }UI workflow
Dashboard mockup
Behavior
Full directory structure (all phases)
Beta Was this translation helpful? Give feedback.
All reactions