Project Plan
Bootstrap a brand-new standalone project inside the Colloquium monorepo.
# Colloquium Project — Initiate
Bootstrap a brand-new standalone project inside the Colloquium monorepo.
Invoke as:
`/colloquium:project-initiate` → starts Q&A for a new project
**Version:** v1 — Bootstrap-only skill (split from colloquium:project v3)
> **For continuing an existing project,** use `/colloquium:project-implement` instead.
---
## ENFORCEMENT RULES (read before executing any step)
1. **Always ask first.** Always begin with a scan for existing projects to prevent accidentally re-bootstrapping an active project.
2. **State after every step.** Write `project-state.json` after EVERY step — not after phases, not in batches.
3. **Banners are mandatory.** Every phase and step displays its start and completion banner.
4. **Hard gates block.** Steps marked HARD GATE loop until the gate condition is met — do NOT proceed without it.
5. **`feature_list.json` is append-only.** Once written, only the `"passes"` field may ever change. Descriptions, steps, and ordering are permanently frozen.
6. **AI never touches git beyond reading status.** No branch creation, no push, no PR — the human controls all git operations. The ONE exception: the initial scaffold commit in Phase B3 (explicitly described below).
---
## Entrypoint: Safety Check
Before starting Q&A, run:
```bash
ls .claude/projects/ 2>/dev/null
Collect all subdirectories that contain a project-state.json into known_projects.
If known_projects is non-empty, display a warning:
════════════════════════════════════════════════════════════════
⚠️ EXISTING PROJECTS DETECTED
════════════════════════════════════════════════════════════════
Found existing projects:
[list them with their passing test counts]
Are you sure you want to bootstrap a NEW project?
To continue an existing project, run /colloquium:project-implement
════════════════════════════════════════════════════════════════
Wait for explicit confirmation before proceeding. On confirm → Phase B1.
Phase B1: Q&A — 5 Topic Blocks
Present questions block by block (not one at a time). Use AskUserQuestion tool with multiple related questions per block where possible. After each block, confirm understanding before moving to the next.
Block 1 — Identity
Ask:
- What is the app's name? (This becomes the slug for folder names — use kebab-case, e.g.
claude-ai-clone) - Describe the app in one sentence. What does it do?
- Who are the primary users?
Record: slug, name, overview, users.
Block 2 — Tech Stack
Ask:
- Frontend framework? (React/Vite, Next.js, other — or none)
- Styling approach? (Tailwind CSS, CSS Modules, other)
- State management? (React context, Zustand, Redux, none)
- Backend runtime? (Node.js/Express, Hono, none — pure frontend)
- Database? (SQLite, PostgreSQL, none)
- Authentication? (none/single default user, JWT, OAuth, other)
- Real-time requirements? (SSE, WebSockets, polling, none)
Record: techStack object with all fields.
Block 3 — Features
Ask:
- List the 5–10 main feature areas of the app (freeform — user can list them in any format).
- For the list received: which are MVP (must-have for first version) vs. nice-to-have?
- Any content-rendering requirements? (Markdown, code syntax highlighting, LaTeX, diagrams)
- Mobile/responsive requirements? (mobile-first, desktop-only, both)
- Any third-party API integrations? (list them)
Record: features array with name, priority (mvp/nice-to-have), description for each.
Block 4 — Design
Ask:
- Layout pattern? (sidebar + main chat, dashboard with widgets, full-width content, other)
- Light mode, dark mode, or both?
- Any design reference, brand colors, or specific aesthetic to match?
Record: design object with layout, colorMode, reference.
Block 5 — Constraints
Ask:
- Any hard port requirements? (e.g., "frontend must run on port 5173")
- How are API keys/secrets provided? (environment variables in
.env, from a file path like/tmp/api-key, other) - Any known performance, scale, or deployment constraints?
Record: constraints object.
Blocks 1–5 Review Banner
After all 5 blocks:
════════════════════════════════════════════════════════════════
📋 Q&A Complete — Review
════════════════════════════════════════════════════════════════
App: [name] ([slug])
Purpose: [overview]
Stack: [frontend] + [backend] + [database]
Auth: [auth]
Features: [count] areas — [count] MVP, [count] nice-to-have
Layout: [layout], [colorMode]
════════════════════════════════════════════════════════════════
Ask: "Does this look correct? Any corrections before I generate the spec?"
If corrections: update the relevant fields and re-display the banner. Loop until the user explicitly confirms.
Phase B2: Spec Generation — HARD GATE
⚠️ HARD GATE: Do NOT proceed to Phase B3 until all three artifacts are confirmed to exist on disk via
ls.
Generate all three artifacts atomically from the Q&A answers. For any field not explicitly answered, use sensible defaults that match the stated tech stack and feature set.
Artifact 1: app_spec.txt
Write to: .claude/projects/<slug>/app_spec.txt
The file MUST follow this XML structure exactly (all sections required):
<project_specification>
<project_name>[name from Q&A]</project_name>
<overview>
[2–4 sentence description of the app, its purpose, and target users]
</overview>
<technology_stack>
<frontend>
<framework>[from Q&A]</framework>
<styling>[from Q&A]</styling>
<state_management>[from Q&A]</state_management>
<routing>[inferred from framework choice]</routing>
<port>Only launch on port [from constraints, or 5173 default]</port>
</frontend>
<backend>
<runtime>[from Q&A, or NONE if frontend-only]</runtime>
<database>[from Q&A, or NONE]</database>
<port>[5001 default if backend exists]</port>
</backend>
<auth>[
Maintain Project Plan?
Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.
[Project Plan on getagentictools](https://getagentictools.com/loops/sertaccebeci-colloquium-project-initiate?ref=badge)