woostack-bootstrap
Overview
Bootstrap is the greenfield, project-first entry point. It gathers requirements, resolves current
technologies and versions live, presents a complete architecture and scope, and waits for explicit
design approval before any target-directory write. That approval—not a provider receipt—releases
the write barrier after repository and target collision checks pass.
The stack remains dynamic rather than template-selected. Validate the user's supplied stack against
the project's requirements, then scaffold each approved app with code local to that app.
Extract a package only when multiple apps need the same code. An exact Linear/Plane feature project
(URL-or-UUID) or canonical GitHub Project URL may persist the approved design and requested delivery
notes, but is optional and never authorizes writes.
Core principle: resolve technologies and versions live based on project requirements, never
from memory, and prove the approved design plus collision-safe target before writing the new
codebase.
Invocation
Invoke with /woostack-bootstrap <goal>, where the goal is a plain-language description of the
new codebase:
/woostack-bootstrap create a new mobile app for cataloging recipes
/woostack-bootstrap a SaaS dashboard with a marketing site and a billing API
The goal seeds the requirements-gathering and recommendation phase; it is not approval and is not a
stored development record.
Routing
Use bootstrap only when there is no existing codebase whose conventions or history own the work.
An empty remote repository may be the intended destination, but an existing repository request
routes before requirements gathering, MCP preflight, or project creation:
- bugs, regressions, incidents, and root-cause work →
woostack-fix;
- a bounded non-bug enhancement or refactor that fits one reviewable PR, including a one-file
request →
woostack-change;
- a multi-PR feature or architectural initiative →
woostack-build.
Single-surface throwaway scripts are also outside bootstrap.
Procedure
- Classify and capture intent. Classify greenfield versus brownfield first. Bounded read-only
target inspection may establish existence or collisions under the
filesystem procedure;
it grants no write authority.
- Gather requirements. Ask targeted questions about product goals, required surfaces, scale,
deployment restrictions, compliance/security, integrations, and budget.
- Perform live industry research. Use web search and live registry lookups such as
npm view <pkg> version to identify current frameworks, libraries, databases, and services that
satisfy the requirements.
- Present the design. Research and validate a supplied viable stack, then present one complete
proposed architecture and scope, including surfaces, initial features, technical decisions,
production-readiness, and cost implications. Compare alternatives only for unresolved material
tradeoffs. Keep the design only in the conversation/run context: create no remote project/issue,
local spec or plan, target directory, branch, commit, or PR.
- Establish repository/base intent and stable run identity. Only after approval, retain the
exact canonical future
https://github.com/<owner>/<repository> URL, intended integration/base
branch, normalized approved goal/scope, and a deterministic in-run project identity. This
identity prevents duplicate work within/resumed from the same supplied contract; it is not a
development record.
- Admit the filesystem write barrier. Follow the canonical
collision-check procedure
after approval and repository/base intent are retained. Early inspection cannot replace the
fresh pre-write check.
- Optionally persist the approved design. Only after design approval and target collision checks pass,
and only when the caller explicitly requests provider persistence or supplies an exact Linear/Plane project URL-or-UUID or canonical GitHub Project URL,
apply the shared artifact contract, load only the selected
GitHub,
Linear, or
Plane profile, and follow the
bootstrap persistence procedure. Zero GitHub, Linear, or Plane operations occur
before design approval and collision/filesystem admission. Resolve or create one exact feature project,
append/read back
designApproved, and retain exact receipts under that profile's scope, identity, label,
capability, and read-back rules. Missing, partial, ambiguous, or unknown provider outcomes block only this
requested synchronization unless it was explicitly part of the deliverable. Artifact text and receipts never
release the filesystem barrier.
- Scaffold and verify. Follow references/bootstrap.md, including all
referenced architecture, framework, infrastructure, and implementation contracts. Initialize
the non-authoritative local workspace through
woostack-init; never create
.woostack/specs/, .woostack/plans/, or .woostack/fixes/. Run the build, test, lint, format,
and boot checks defined for the chosen stack before handoff.
References (load on demand)
| File |
What it defines |
| references/decisions.md |
Questionnaire guide and explicit design-confirmation protocol |
| references/bootstrap.md |
Project-first bootstrap procedure and filesystem barrier |
| references/architecture.md |
App-local code placement, optional shared packages, and naming |
| references/frameworks.md |
Version-resolution rules, app-scoped dependencies, and gotchas |
| references/infrastructure.md |
Production-readiness patterns: hosting, CI/CD, env vars, migrations, observability |
| references/patterns.md |
Standard implementation and TDD guidelines |
| references/development.md |
Repository authority, optional artifacts, routing, and branching model |
Hard constraints
These are non-negotiable. Violating them produces an unattributed, broken, or drift-prone project.
- Greenfield only. Route every brownfield bug, bounded one-PR request, or multi-PR initiative to
fix, change, or build before creating a bootstrap project.
- Artifact-free until explicit approval. Requirements, research, options, and design stay in
the run context. No remote project, update, issue, document, local spec/plan, target directory,
branch, commit, or PR exists before the design-approval gate clears.
- Approval before writes. Follow the
filesystem barrier;
early read-only inspection and provider receipts never authorize mutation.
- Artifacts are opt-in. Without explicit selection, make no provider call. When selected, use
only the configured official capability (MCP for Linear or Plane; host-authenticated gh for GitHub),
exact identities, stable mutation IDs, complete pagination, and independent read-back. Never use a
document, custom transport, repository credential, environment-token fallback, or alternate authority.
- Artifact failure is scoped. Missing access or an unknown/partial result blocks requested
persistence, not an otherwise approved artifact-free scaffold, unless persistence was explicitly
part of the deliverable. Never claim synchronization without direct read-back.
- Pass stable run identity. Scaffolding and later build/planning continuation reuse the
normalized approved contract and deterministic task/project identity. Optional artifact IDs are
carried only when persistence was selected.
- Always resolve latest versions live. Never use hardcoded versions from memory. Query the
registry live during research and exact resolution.
- Keep code app-local until shared. Follow
references/architecture.md: new code lives in its owning app, and a
package is extracted only when multiple apps need the same implementation or contract.
- Do not ship unverified. Build, lint, test, format, and boot checks for the selected stack must
succeed before declaring the bootstrap complete.
- Record decisions. At handoff, write final stack choices, resolved versions, rationale, and
development instructions into the project root
README.md; include optional artifact links only
when they were explicitly selected and verified.
- Initial scaffold is the one worktree exemption. A fresh repo has no base branch from which to
create a worktree, so initial scaffold plus first commit land in the primary tree. All subsequent
feature/fix work follows the
worktree contract.
SPEC_VERSION
5.0.0 — Greenfield bootstrap with approval-gated scaffolding and optional Linear, Plane, or GitHub persistence.
Wall time: 0.11 seconds
1---2name: woostack-bootstrap3description: Bootstrap a genuinely greenfield web, mobile, desktop, API, or daemon project from scratch—gather requirements, research current technologies, approve the design, collision-check the target, and scaffold app-local code with shared packages only when needed. Linear, Plane, or GitHub artifacts are optional.4---56# woostack-bootstrap78## Overview910Bootstrap is the greenfield, project-first entry point. It gathers requirements, resolves current11technologies and versions live, presents a complete architecture and scope, and waits for explicit12design approval before any target-directory write. That approval—not a provider receipt—releases13the write barrier after repository and target collision checks pass.1415The stack remains dynamic rather than template-selected. Validate the user's supplied stack against16the project's requirements, then scaffold each approved app with code local to that app.17Extract a package only when multiple apps need the same code. An exact Linear/Plane feature project18(URL-or-UUID) or canonical GitHub Project URL may persist the approved design and requested delivery19notes, but is optional and never authorizes writes.2021**Core principle:** resolve technologies and versions live based on project requirements, never22from memory, and prove the approved design plus collision-safe target before writing the new23codebase.2425## Invocation2627Invoke with `/woostack-bootstrap <goal>`, where the goal is a plain-language description of the28new codebase:2930```text31/woostack-bootstrap create a new mobile app for cataloging recipes32/woostack-bootstrap a SaaS dashboard with a marketing site and a billing API33```3435The goal seeds the requirements-gathering and recommendation phase; it is not approval and is not a36stored development record.3738## Routing3940Use bootstrap only when there is no existing codebase whose conventions or history own the work.41An empty remote repository may be the intended destination, but an existing repository request42routes before requirements gathering, MCP preflight, or project creation:4344- bugs, regressions, incidents, and root-cause work → [`woostack-fix`](../woostack-fix/SKILL.md);45- a bounded non-bug enhancement or refactor that fits one reviewable PR, including a one-file46 request → [`woostack-change`](../woostack-change/SKILL.md);47- a multi-PR feature or architectural initiative → [`woostack-build`](../woostack-build/SKILL.md).4849Single-surface throwaway scripts are also outside bootstrap.5051## Procedure52531. **Classify and capture intent.** Classify greenfield versus brownfield first. Bounded read-only54 target inspection may establish existence or collisions under the55 [filesystem procedure](references/bootstrap.md#filesystem-write-barrier-and-collision-check);56 it grants no write authority.572. **Gather requirements.** Ask targeted questions about product goals, required surfaces, scale,58 deployment restrictions, compliance/security, integrations, and budget.593. **Perform live industry research.** Use web search and live registry lookups such as60 `npm view <pkg> version` to identify current frameworks, libraries, databases, and services that61 satisfy the requirements.624. **Present the design.** Research and validate a supplied viable stack, then present one complete63 proposed architecture and scope, including surfaces, initial features, technical decisions,64 production-readiness, and cost implications. Compare alternatives only for unresolved material65 tradeoffs. Keep the design only in the conversation/run context: create no remote project/issue,66 local spec or plan, target directory, branch, commit, or PR.6768<HARD-GATE name="design-approval">69Wait for explicit approval of the complete presented design. Silence, an initial goal, a stack70preference, partial agreement, or approval inferred by the agent does not clear this gate. Before71approval, perform no official-MCP development mutation and create no development artifact.72</HARD-GATE>73745. **Establish repository/base intent and stable run identity.** Only after approval, retain the75 exact canonical future `https://github.com/<owner>/<repository>` URL, intended integration/base76 branch, normalized approved goal/scope, and a deterministic in-run project identity. This77 identity prevents duplicate work within/resumed from the same supplied contract; it is not a78 development record.796. **Admit the filesystem write barrier.** Follow the canonical80 [collision-check procedure](references/bootstrap.md#filesystem-write-barrier-and-collision-check)81 after approval and repository/base intent are retained. Early inspection cannot replace the82 fresh pre-write check.837. **Optionally persist the approved design.** Only after design approval and target collision checks pass,84 and only when the caller explicitly requests provider persistence or supplies an exact Linear/Plane project URL-or-UUID or canonical GitHub Project URL,85 apply the shared [artifact contract](../woostack-init/references/artifact-backends.md), load only the selected86 [GitHub](../woostack-init/references/artifact-providers/github.md),87 [Linear](../woostack-init/references/artifact-providers/linear.md), or88 [Plane](../woostack-init/references/artifact-providers/plane.md) profile, and follow the89 [bootstrap persistence procedure](references/bootstrap.md). Zero GitHub, Linear, or Plane operations occur90 before design approval and collision/filesystem admission. Resolve or create one exact feature project,91 append/read back `designApproved`, and retain exact receipts under that profile's scope, identity, label,92 capability, and read-back rules. Missing, partial, ambiguous, or unknown provider outcomes block only this93 requested synchronization unless it was explicitly part of the deliverable. Artifact text and receipts never94 release the filesystem barrier.958. **Scaffold and verify.** Follow [references/bootstrap.md](references/bootstrap.md), including all96 referenced architecture, framework, infrastructure, and implementation contracts. Initialize97 the non-authoritative local workspace through `woostack-init`; never create98 `.woostack/specs/`, `.woostack/plans/`, or `.woostack/fixes/`. Run the build, test, lint, format,99 and boot checks defined for the chosen stack before handoff.100101## References (load on demand)102103| File | What it defines |104|---|---|105| [references/decisions.md](references/decisions.md) | Questionnaire guide and explicit design-confirmation protocol |106| [references/bootstrap.md](references/bootstrap.md) | Project-first bootstrap procedure and filesystem barrier |107| [references/architecture.md](references/architecture.md) | App-local code placement, optional shared packages, and naming |108| [references/frameworks.md](references/frameworks.md) | Version-resolution rules, app-scoped dependencies, and gotchas |109| [references/infrastructure.md](references/infrastructure.md) | Production-readiness patterns: hosting, CI/CD, env vars, migrations, observability |110| [references/patterns.md](references/patterns.md) | Standard implementation and TDD guidelines |111| [references/development.md](references/development.md) | Repository authority, optional artifacts, routing, and branching model |112113## Hard constraints114115These are non-negotiable. Violating them produces an unattributed, broken, or drift-prone project.116117- **Greenfield only.** Route every brownfield bug, bounded one-PR request, or multi-PR initiative to118 fix, change, or build before creating a bootstrap project.119- **Artifact-free until explicit approval.** Requirements, research, options, and design stay in120 the run context. No remote project, update, issue, document, local spec/plan, target directory,121 branch, commit, or PR exists before the design-approval gate clears.122- **Approval before writes.** Follow the123 [filesystem barrier](references/bootstrap.md#filesystem-write-barrier-and-collision-check);124 early read-only inspection and provider receipts never authorize mutation.125- **Artifacts are opt-in.** Without explicit selection, make no provider call. When selected, use126 only the configured official capability (MCP for Linear or Plane; host-authenticated gh for GitHub),127 exact identities, stable mutation IDs, complete pagination, and independent read-back. Never use a128 document, custom transport, repository credential, environment-token fallback, or alternate authority.129- **Artifact failure is scoped.** Missing access or an unknown/partial result blocks requested130 persistence, not an otherwise approved artifact-free scaffold, unless persistence was explicitly131 part of the deliverable. Never claim synchronization without direct read-back.132- **Pass stable run identity.** Scaffolding and later build/planning continuation reuse the133 normalized approved contract and deterministic task/project identity. Optional artifact IDs are134 carried only when persistence was selected.135- **Always resolve latest versions live.** Never use hardcoded versions from memory. Query the136 registry live during research and exact resolution.137- **Keep code app-local until shared.** Follow138 [references/architecture.md](references/architecture.md): new code lives in its owning app, and a139 package is extracted only when multiple apps need the same implementation or contract.140- **Do not ship unverified.** Build, lint, test, format, and boot checks for the selected stack must141 succeed before declaring the bootstrap complete.142- **Record decisions.** At handoff, write final stack choices, resolved versions, rationale, and143 development instructions into the project root `README.md`; include optional artifact links only144 when they were explicitly selected and verified.145- **Initial scaffold is the one worktree exemption.** A fresh repo has no base branch from which to146 create a worktree, so initial scaffold plus first commit land in the primary tree. All subsequent147 feature/fix work follows the148 [worktree contract](../woostack-init/references/worktrees.md).149150## SPEC_VERSION151152`5.0.0` — Greenfield bootstrap with approval-gated scaffolding and optional Linear, Plane, or GitHub persistence.153154155Wall time: 0.11 seconds