Agent-friendly software project scaffolding CLI for apps, APIs, CLIs, and OSS packages.
Early build. StackForge is release-scoped as a CLI-first tool first, with CrewCmd support treated as a later wrapper for orchestrator and sub-agent use.
stackforgeCLI owns deterministic project generation.- Humans and agents use the same local command surface.
- CrewCmd owns orchestration instructions, health checks, and capability routing later; it does not replace the CLI.
- OpenClaw agents should only run StackForge tasks on machines where the CLI is installed and verified.
pnpm install
pnpm build
pnpm dev templates
pnpm dev init oss-cli my-tool --dry-run
pnpm dev init oss-cli my-tool
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --tasks ./docs/TASKS.md
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --taskbriefThe V1 release bar is a documented, deterministic command surface:
stackforge --version
stackforge templates
stackforge init oss-cli demo --dry-run
stackforge init oss-cli demoStackForge never creates a GitHub repository by default. To request GitHub creation, add --github-create; the first run is still a dry run for the GitHub and git publish commands so you can review them safely:
pnpm dev init oss-cli my-tool --github-create
pnpm dev init oss-cli my-tool --github-create --github-visibility publicAfter reviewing the printed github.command and github.publish.commands, rerun with --github-execute to create the repository through the GitHub CLI, initialize the generated project as a local git repo, create the initial scaffold commit, add origin, and push main:
pnpm dev init oss-cli my-tool --github-create --github-execute--github-execute requires --github-create and cannot be combined with --dry-run. The default visibility is private; use --github-visibility public only when you intentionally want a public repository. For safety, git initialization and push only run for a fresh generated project directory, not an existing directory being overwritten with --force.
StackForge is local-first and review-friendly:
- no hidden network calls
- no implicit GitHub creation
- no default LLM calls
- no autonomous merging or publishing
- no destructive overwrite behavior without explicit intent
oss-cli: TypeScript CLI packagenext-app: Next.js applicationpython-api: Python API service
Generated repositories include scripts/validate.sh as the default local verification path. It runs the repo's normal local package checks when they exist, including release:check, and only runs agent-qc ready when agent-qc is installed, so agent-qc stays optional.
The next-app scaffold ships an npm lockfile and an exact, reviewed Next.js
toolchain. Use npm ci for a reproducible install and npm run audit to check
the production dependency graph for high or critical advisories. The scaffold
temporarily overrides Next.js's bundled postcss and sharp versions because
the upstream range otherwise resolves releases with active advisories.
oss-cli projects also include ReleaseBox by default: releasebox.config.json, reviewed/tag-gated GitHub release workflows, and package smoke scripts. The generated release path creates GitHub Releases with attached tarballs while leaving npm and Homebrew publishing disabled until explicitly enabled.
Use --prd <path> and --tasks <path> with stackforge init to copy local planning inputs into the generated repo as docs/PRD.md and docs/TASKS.md.
If you want StackForge to derive docs/TASKS.md from a PRD after the scaffold is written, use --taskbrief:
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --taskbrief
pnpm dev init oss-cli my-tool --prd ./docs/PRD.md --taskbrief --taskbrief-workspace ./taskbriefRules:
--taskbriefrequires--prd--taskbriefcannot be combined with--tasks- dry-run prints the planned
taskbrief parse ... --format markdown --output docs/TASKS.mdcommand without executing it - execute mode runs
taskbrieflocally after StackForge writes the scaffold files - if
taskbriefis missing fromPATHor exits non-zero, StackForge fails with a clear error
-
pnpm run release:checkruns build, tests, smoke, and package smoke. -
pnpm run package:smokerunsnpm pack --dry-runand verifies the packed CLI, source, templates, release docs, README, and license are present.
See docs/PRD.md.