You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add shorthand syntax for techpack.yaml components (#115)
* Add shorthand syntax for techpack.yaml component definitions
- Add 9 shorthand keys (brew, mcp, plugin, shell, hook, command, skill,
settingsFile, gitignore) that infer type + installAction from a single key
- Make displayName optional (defaults to component id) in both forms
- Add MCPShorthand with optional name override for mixed-case server names
- Add 18 tests covering all shorthand keys, normalization, and mixed manifests
- Rewrite creating-tech-packs.md with shorthand as primary recommended style
* Rewrite docs for v2.1.0 external pack engine
- Rewrite README to reflect pure engine architecture (zero bundled content)
- Rewrite creating-tech-packs.md as a beginner-friendly tutorial
- Add techpack-schema.md as complete field-by-field reference
- Mention planned auto-export feature in the guide
* Update all docs to reflect mcs sync as primary command
Replace all references to deprecated `mcs install` and `mcs configure`
with the unified `mcs sync` command across README, CLAUDE.md,
architecture, creating-tech-packs, techpack-schema, and troubleshooting
docs. Also document previously undocumented flags (--global, --lock,
--update, --customize, --ref, --preview, --force) and remove stale
OllamaService references from the architecture section.
-**Pure engine, zero bundled content**: `mcs` ships no templates, hooks, settings, or skills — all features come from external packs users add via `mcs pack add`
110
-
-**`mcs configure` is the primary command**: per-project multi-select of registered packs, fully idempotent convergence (add/remove/update), per-project artifact placement
119
+
-**`mcs sync` is the primary command**: per-project multi-select of registered packs, fully idempotent convergence (add/remove/update), per-project artifact placement. `--global` flag handles global-scope install
111
120
-**Per-project artifacts**: skills, hooks, commands, and `settings.local.json` go to `<project>/.claude/`; only brew packages and plugins are global
112
121
-**MCP scope defaults to `local`**: per-user, per-project isolation via `claude mcp add -s local` (stored in `~/.claude.json` keyed by project path)
113
-
-**Convergent configure**: `ProjectState` records per-pack `PackArtifactRecord` (MCP servers, files, template sections); re-running converges to desired state by diffing previous vs. selected packs
114
-
-**External pack protocol**: `TechPack` protocol with `ExternalPackAdapter` bridging YAML manifests (`techpack.yaml`) to the same install/doctor/configure flows
122
+
-**Convergent sync**: `ProjectState` records per-pack `PackArtifactRecord` (MCP servers, files, template sections); re-running converges to desired state by diffing previous vs. selected packs
123
+
-**External pack protocol**: `TechPack` protocol with `ExternalPackAdapter` bridging YAML manifests (`techpack.yaml`) to the same install/doctor/sync flows
115
124
-**Section markers**: composed files use `<!-- mcs:begin/end -->` HTML comments to separate tool-managed content from user content
116
125
-**File-based memory**: memories stored in `<project>/.claude/memories/*.md`, indexed by docs-mcp-server for semantic search
117
126
-**Settings composition**: each pack's hook entries compose into `<project>/.claude/settings.local.json` as individual `HookGroup` entries
118
127
-**Backup for mixed-ownership files**: timestamped backup before modifying files with user content (CLAUDE.local.md); tool-managed files are not backed up since they can be regenerated
119
128
-**Component-derived doctor checks**: `ComponentDefinition` is the single source of truth — `deriveDoctorCheck()` auto-generates verification from `installAction`, supplementary checks handle extras
120
129
-**Project awareness**: doctor detects project root (walk-up for `.git/`), resolves packs from `.claude/.mcs-project` before falling back to section marker inference, then to global manifest
130
+
-**Lockfile support**: `mcs.lock.yaml` pins pack versions for reproducible builds; `--lock` checks out pinned versions, `--update` fetches latest
0 commit comments