impactos-bmad-shared-sync
v0.1.4
Published
Cross-platform CLI for synchronizing shared ImpactOS BMad and AI runtime artifacts.
Readme
ImpactOS BMad Sync
Shared source for ImpactOS BMad workflows, AI runtime skills, coding standards, and sync metadata.
Usage
Create bmad.shared.yaml in a consumer project:
source:
repo: https://example.com/path/to/impactos.knowlagebase.git
cachePath: "~/.impactos/impactos.knowlagebase"
ref: main
syncRoot: bmad-sync
runtime:
codex: true
claude: false
gemini: false
opencode: false
preserve:
- _bmad/core/config.yaml
- AGENTS.md
- .claude/CLAUDE.md
- .gemini/GEMINI.md
- .gemini/settings.json
- .roomodesThe package includes the same example at templates/bmad.shared.yaml. The init command creates this local config for a consuming project. Replace source.repo with your knowledgebase repository URL before running plan or sync.
Run:
npx impactos-bmad-shared-sync plan
npx impactos-bmad-shared-sync sync --force
npx impactos-bmad-shared-sync validateFor private repository access, create a local .env next to bmad.shared.yaml:
BMAD_SYNC_REPO_LOGIN=<login>
BMAD_SYNC_REPO_RPT=<rpt-or-token>The CLI reads .env by default or a custom file via --env-file. Credentials are passed to git through a temporary HTTP authorization header and are not written to the repository remote URL. This mode expects an HTTPS source.repo URL.
Layout
common/ Shared project artifacts copied to matching project-relative paths.
runtimes/ Runtime-specific skills and command definitions.
templates/ Full example runtime config files for new projects only.
snippets/ Managed blocks that may be inserted explicitly.
bin/ Cross-platform npm CLI.Runtime config files such as AGENTS.md and .claude/CLAUDE.md are not synchronized as whole files. Use templates manually or update managed blocks only with --update-runtime-config-blocks.
Directory.Build.props is synchronized as a template. During sync, the CLI replaces repository-specific placeholders with metadata from the target project folder:
Productuses the target folder name.RepositoryUrlusesgit remote get-url originfrom the target project.- If the target folder is not a Git repository or has no
originremote, repository URL fields are left empty and can still be overridden by MSBuild properties.
Publishing
The CLI package is intended for the public npm registry:
npm publish --registry https://registry.npmjs.org/Before publishing, confirm the package license and ensure .npmrc uses https://registry.npmjs.org/.
