Project scaffolding
Create Beskid projects, workspaces, and items from templates with beskid new.
Project scaffolding
Beskid scaffolds new projects, workspaces, and items from templates: versioned file trees described by beskid.template.v1 in .beskid/template.json. The primary CLI entrypoint is beskid new; beskid pckg is for packing and publishing template packages, not for instantiation.
Normative contracts live under Project scaffolding. This guide summarizes day-to-day workflows.
Sources
Section titled “Sources”| Source | Typical use |
|---|---|
Registry (packageKind: template) | First-party packages such as beskid.templates.console, installed with beskid new install |
Local path (--path) | Authoring or testing a template tree without publishing |
Git (--git, --git-ref, --git-subpath) | Team or third-party template repos |
When the registry is reachable, the CLI resolves official beskid.templates.* packages from pckg rather than embedding stale copies in the binary.
Install and cache
Section titled “Install and cache”beskid new listbeskid new list --onlinebeskid new install beskid.templates.consolebeskid new uninstall consolebeskid new install extracts a template snapshot into the user tooling cache (same config root as beskid pckg auth). beskid new list shows installed templates; --online merges registry search results.
On each instantiate, the CLI may warn when a newer registry version exists or when the installed version is yanked (non-fatal unless policy requires otherwise).
Instantiate
Section titled “Instantiate”# Installed short name (auto-install from registry when online if needed)beskid new console -n MyApp -o ./MyApp
# Registry package without prior installbeskid new --package beskid.templates.lib --symbol name=MyLib -o ./MyLib
# Local directorybeskid new --path ./my-template -o ./Out
# Gitbeskid new --git https://example.com/templates --git-ref main --git-subpath console -o ./AppTemplate kinds (tags.type)
Section titled “Template kinds (tags.type)”tags.type | Creates |
|---|---|
project | New directory with Project.proj and scaffold sources |
workspace | Workspace.proj plus member project trees |
item | Files inside an existing project; use --project for the host Project.proj |
Use --no-interactive in CI with every required symbol set via -n / --name or --symbol id=value. Use --force to write into a non-empty output directory.
See beskid new command reference for the full flag table.
corelib on instantiated hosts
Section titled “corelib on instantiated hosts”Every instantiated ordinary host project (project.type omitted or Host) always gets corelib through the normal toolchain path (lock/fetch/materialize)—the same implicit standard library behavior as existing projects. Template output must not ship a user-facing switch to disable corelib; manifests may omit an explicit dependency "corelib" block because beskid lock / beskid fetch still materialize it.
Authoring template packages
Section titled “Authoring template packages”Template authors use project.type = Template in Project.proj and publish with beskid pckg pack (sets packageKind: template, includes .beskid/template.json, skips api.json generation). See beskid pckg and Template packages.