Safely coordinate a Git root repository with independent submodules through reviewable blueprints and visible lifecycle operations.
Development status: source builds are supported. APIs and generated starters remain evolving. SMT does not promise package-manager installation;
applycreates a deterministic, Git-ready scaffold and does not install dependencies.
SMT makes coordination inspectable: review the blueprint, see the root and each independent repository, and run guarded lifecycle operations with clear preflight and recovery boundaries. It uses argument-array Git execution, child-first pushes and pulls, root-first worktree creation, Beads-aware branch operations, and no credential persistence.
| Area | Current capability |
|---|---|
| Blueprint | smt new creates a reviewed configuration; smt apply creates the root and selected independent submodules. |
| Repository lifecycle | push, remote provision, pull, and synchronized worktree add. |
| Beads lifecycle | prepare and switch coordinate existing Beads-ID branches. |
| Diagnostics | status and doctor report repository, executable, remote, hook, and profile readiness. |
| Hooks | Guarded Lefthook installation and conventional commit validation. |
| Mobile | Current Mobile output is a Git-ready scaffold-only shell, not generated Flutter application source. |
Prerequisites: Git, Go 1.26.5, Task, and Beads bd. Lefthook is optional
until you install hooks. Build and verify SMT first:
git clone https://github.com/parmcoder/smt.git
cd smt
task verify
task build
./bin/smt --help
mkdir -p ../platform-config
./bin/smt new ../platform-config/smt.yaml
# Inspect and edit ../platform-config/smt.yaml.
./bin/smt apply --config ../platform-config/smt.yaml ../platform
export PATH="$PWD/bin:$PATH"
cd ../platform
smt doctorsmt new writes a blueprint only after confirmation. Inspect it before
apply; the destination must be new. apply initializes Beads metadata and
does not install dependencies, call provider APIs, or create remote projects.
flowchart LR
A["smt new"] --> B["Inspect smt.yaml"]
B --> C["smt apply"]
C --> D["Root + selected independent submodules"]
D --> E["status / doctor"]
E --> F["Lifecycle commands"]
All roadmap items are planned unless marked as available above.
| Horizon | Planned direction |
|---|---|
| Now | v1 module/starter restructure around Web, Mobile, API, and Database with a Podman-first runtime. |
| Next | Manifest/toolchain Taskfiles, security, integration/runtime verification, and v0.1.0 human/release gates. |
| Later | smt extend, provider-specific CI, observability, managed upgrades, SBOM/signing, and cloud/platform discovery. |
- Review before apply; preflight all repositories before side effects.
- Use argument arrays; never persist credentials or authorization headers.
- Never force-push, rewrite history, overwrite unmanaged hooks, or silently install tools and integrations.
- Report completed and pending work after partial lifecycle failures; do not perform destructive automatic rollback.
- Documentation index
- Implementation Spec
- Product Concept
- Command Recipes
- Component Developer Toolchains
- Extensible Modules Design
- v0.1.0 Production Plan
Contributions are tracked with Beads. Start with bd ready, create or claim a
task before changing files, use the exact task ID as the branch name, and run
task verify. Read AGENTS.md
for the repository and agent workflow.
SMT is released under the MIT License.