Development workspace for the SpawnDock platform. Combines all components as git submodules with a spec-driven development workflow powered by speckit.
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#ff8c00', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#e67300', 'lineColor': '#ffa500', 'secondaryColor': '#2d2d2d', 'tertiaryColor': '#3a3a3a', 'edgeLabelBackground': '#1a1a1a', 'clusterBkg': '#1e1e1e', 'clusterBorder': '#ff8c00', 'mainBkg': '#1a1a1a', 'background': '#0d1117', 'fontFamily': 'monospace'}}}%%
graph LR
subgraph repo["repo/ — submodules"]
api["api\nTelegram bot + MCP server\n+ tunnel control plane"]
tma["tma-project\nNext.js + TON Connect\n+ Telegram UI"]
mcp["mcp-client\nstdio-to-SSE bridge\nfor AI agents"]
tunnel["dev-tunnel\nWebSocket tunnel client"]
cli["cli\nAI runtime launcher"]
create["create\nBootstrap CLI"]
end
subgraph specify[".specify/ — speckit"]
memory["memory/\nconstitution.md"]
specs["specs/\nfeature specifications"]
templates["templates/\ndocument templates"]
end
subgraph agents[".agents/"]
skills["skills/\nAI agent commands"]
end
style api fill:#ff8c00,stroke:#e67300,color:#fff
style tma fill:#ff8c00,stroke:#e67300,color:#fff
style mcp fill:#ff8c00,stroke:#e67300,color:#fff
style tunnel fill:#ff8c00,stroke:#e67300,color:#fff
style cli fill:#ff8c00,stroke:#e67300,color:#fff
style create fill:#ff8c00,stroke:#e67300,color:#fff
style memory fill:#ffb74d,stroke:#e67300,color:#1a1a1a
style specs fill:#ffb74d,stroke:#e67300,color:#1a1a1a
style templates fill:#ffb74d,stroke:#e67300,color:#1a1a1a
style skills fill:#ffe0b2,stroke:#e67300,color:#1a1a1a
git clone --recurse-submodules git@github.com:SpawnDock/agent.git SpawnDock
cd SpawnDockIf already cloned without --recurse-submodules:
git submodule update --init --recursivepnpm install --recursiveEach directory under repo/ is an independent package — navigate into it and follow its own README.
This workspace uses speckit — an AI-assisted workflow for going from idea to implementation through structured documents. All commands are slash-commands in Cursor (via .agents/skills/).
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#ff8c00', 'primaryTextColor': '#fff', 'primaryBorderColor': '#e67300', 'lineColor': '#ff8c00', 'secondaryColor': '#fff3e0', 'tertiaryColor': '#ffe0b2'}}}%%
flowchart TD
A["/speckit.constitution\nEstablish project principles"] --> B
B["/speckit.clarify\nAsk clarifying questions"] --> C
C["/speckit.specify\nWrite feature spec"] --> D
D["/speckit.plan\nCreate implementation plan"] --> E
E["/speckit.tasks\nBreak into task checklist"] --> F
F["/speckit.implement\nImplement tasks"] --> G
G["/speckit.checklist\nQA / review checklist"] --> H
H["/speckit.taskstoissues\nExport to GitHub Issues"]
style A fill:#ff8c00,stroke:#e67300,color:#fff
style B fill:#ff9800,stroke:#e67300,color:#fff
style C fill:#ffa726,stroke:#e67300,color:#fff
style D fill:#ffb74d,stroke:#e67300,color:#1a1a1a
style E fill:#ffcc80,stroke:#e67300,color:#1a1a1a
style F fill:#ffb74d,stroke:#e67300,color:#1a1a1a
style G fill:#ffa726,stroke:#e67300,color:#fff
style H fill:#ff9800,stroke:#e67300,color:#fff
linkStyle default stroke:#ff8c00,stroke-width:2px
You can enter the workflow at any stage. Each command reads artifacts produced by earlier stages.
| Command | Description |
|---|---|
/speckit.constitution |
Create or amend project principles |
/speckit.clarify |
Generate clarifying questions before writing a spec |
/speckit.specify |
Create a feature spec from a plain-language description |
/speckit.plan |
Produce a technical design plan |
/speckit.tasks |
Break a plan into an ordered task list |
/speckit.implement |
Work through tasks in the task list |
/speckit.checklist |
Generate a QA checklist |
/speckit.analyze |
Analyze code for quality, coverage, or design issues |
/speckit.taskstoissues |
Convert a task list into GitHub Issues |
/speckit.specify Add a settings screen where users can change their display name
Creates .specify/specs/<number>-<slug>/spec.md on a new branch with prioritized user stories and acceptance criteria.
Non-negotiable principles in .specify/memory/constitution.md:
| Area | Standards |
|---|---|
| Code quality | Zero linter warnings, single responsibility, no dead code |
| Testing | TDD, 80 % coverage floor, deterministic tests, CI gate |
| UX | Design tokens, WCAG 2.1 AA, error states, API contract stability |
| Performance | Bundle ≤ 150 KB gzip, API p95 ≤ 500 ms, no N+1 queries |
All pull requests must pass these quality gates before merging.
Specs live under .specify/specs/. Each folder maps to a git branch:
| File | Contents |
|---|---|
spec.md |
User stories, functional requirements, success criteria |
plan.md |
Technical design and implementation plan |
tasks.md |
Ordered task checklist |
Current specs:
spawndock-tma-platform— End-to-end AI-powered TMA creation platform