@phcdevworks/spectre-init is the project scaffolding CLI of the Spectre
shell ecosystem. It creates a new TypeScript app from a bundled template,
wires Spectre dependencies, and provides a predictable starter structure.
Maintained by PHCDevworks. It scaffolds new
applications against the rest of the Spectre shell ecosystem (spectre-shell,
spectre-shell-router, spectre-shell-signals, and the project-design
packages) but is not itself a dependency of any other repo in the workspace.
| Field | Value |
|---|---|
| Project team | project-shell |
| Repository role | Spectre project scaffolding CLI |
| Package/artifact | @phcdevworks/spectre-init |
| Current version/status | 1.2.0 |
- Read AGENTS.md, then the agent-specific guide for the task.
- Check TODO.md and ROADMAP.md for current scope.
- Make the smallest repo-local change that satisfies the task.
- Run
npm run checkwhen validation is required or practical. - Update docs and CHANGELOG.md only when behavior, public contracts, or release-relevant metadata changed.
| Guide | Path |
|---|---|
| Agent rules | AGENTS.md |
| Claude Code | CLAUDE.md |
| Codex | CODEX.md |
| Copilot | COPILOT.md |
| Jules | JULES.md |
| Roadmap | ROADMAP.md |
| Todo | TODO.md |
| Changelog | CHANGELOG.md |
| Security | SECURITY.md |
CLI scaffolding for Spectre-ready applications. spectre-init creates a new TypeScript app from a bundled template, wires Spectre dependencies, and provides a predictable starter structure.
Contributing | Code of Conduct | Changelog | Roadmap | Security Policy
- You are starting a new Spectre-based application from scratch.
- You want a working starter with
@phcdevworks/spectre-shell,@phcdevworks/spectre-tokens, and the router wired up from the first commit. - You want project files,
AGENTS.md, and AI-agent guidance pre-populated for the Spectre ecosystem.
- You are adding Spectre to an existing project — install packages individually instead.
- You need a non-TypeScript or non-vanilla-JS template — this scaffold is TypeScript-only.
- You need a framework-specific template (React, Vue, etc.) — those are out of scope.
| Type | Description | Packages wired |
|---|---|---|
vanilla |
TypeScript + Vite starter with routing and Spectre UI. | spectre-shell, spectre-shell-router, spectre-tokens, spectre-ui |
shell-app |
Full shell app with bootstrapApp, router, signals, reactive effects, and Spectre components. |
spectre-shell, spectre-shell-router, spectre-shell-signals, spectre-components, spectre-tokens, spectre-ui |
The interactive setup prompts for project type. The non-interactive path (spectre-init <name>) defaults to vanilla.
Templates scaffold against the Spectre package family:
- spectre-shell — SPA bootstrap layer (
bootstrapApp, lifecycle hooks) - spectre-shell-router — client-side router with named routes and
render/destroyhooks - spectre-shell-signals — reactive primitives (
signal,computed,effect) - spectre-components — Spectre web components (for example
sp-buttoninshell-app) - spectre-tokens — design tokens as CSS variables (
--sp-*), JS objects, and Tailwind theme - spectre-ui — CSS bundles and type-safe recipe functions built on tokens
- Scaffolds a Spectre-ready TypeScript application from a bundled template.
- Interactive setup: prompts for project name, type, and output directory with a confirmation summary before any files are written.
- Copies the bundled template starter into a new project directory.
- Validates project names before writing files.
- Updates the generated package name to match the requested project.
- Validates scaffolded output before running
npm install. - Runs
npm installafter scaffolding so the app is ready to start.
Run once with npx:
npx @phcdevworks/spectre-init my-appOr install globally:
npm install -g @phcdevworks/spectre-init
spectre-init my-appInteractive (guided setup):
npx @phcdevworks/spectre-initNon-interactive (name provided, no prompts):
npx @phcdevworks/spectre-init my-app
cd my-app
npm run devThis package exposes the spectre-init binary.
spectre-init # interactive setup
spectre-init <project-name> # skip prompts, scaffold immediately
spectre-init --help
spectre-init --versionThis package owns project scaffolding and starter templates. It does not own runtime routing, reactive state, design tokens, UI components, or framework adapters.
npm install
npm run checkUseful scripts:
npm run typecheckvalidates TypeScript without emitting files.npm run lintruns ESLint.npm run buildemits the CLI todist.npm run check:version-syncchecks README/package.json version parity.npm run check:ecosystemvalidates the spectre-manifest entry.npm run checkruns the standard package verification flow.
AI-agent coordination starts in AGENTS.md, with companion guidance in CLAUDE.md, CODEX.md, COPILOT.md, JULES.md, and .github/copilot-instructions.md.
| Problem | Likely cause | Fix |
|---|---|---|
npm run check fails |
Type or lint error | Run npm run typecheck or npm run lint to isolate |
Scaffolded app fails npm install |
Network or registry issue | Run npm install manually inside the generated directory |
| Project name rejected | Name contains uppercase, spaces, or invalid characters | Use lowercase letters, numbers, hyphens, underscores, and dots only |
spectre-init --version shows wrong version |
Stale global install | Run npm install -g @phcdevworks/spectre-init to update |
Claude Code (claude-sonnet-4-6) is the primary development agent for this
repository. Codex handles releases, including cutting tagged releases and
GitHub Releases, and production stabilization. Jules handles small automated
fixes and dependency updates. GitHub Copilot provides development support.
All AI agents with repository access (Claude Code, Codex, Copilot, Jules) have commit, push, and tag authority in this repository. Publishing to npm remains Bradley Potts's sole authority. See AGENTS.md for the full commit-policy and release-authority grant.
Protected from automated change: the scaffolding-only scope (no runtime routing, reactive state, UI components, or framework adapters added locally) and the token-driven template constraint (no hardcoded hex colors or spacing literals in templates). See AGENTS.md for full agent governance and boundary rules.
See CONTRIBUTING.md. The gate is npm run check. Template changes must preserve the token-driven constraints — no hardcoded hex colors or spacing literals. See AGENTS.md for boundaries.
See CHANGELOG.md.
MIT. See LICENSE.