You (the AI) are running this task. The developer does not read this file.
codex just ran trellis init on a fresh clone, saw "Developer
initialized", and will now start asking you questions in chat. This joiner task
exists under .trellis/tasks/; when they want to work on it, they should
start it from a session that provides Trellis session identity.
Your job is to orient them to Trellis. Don't dump all of this at them — open with a short greeting, ask where they want to start, and fill in the rest as they engage.
Trellis is a workflow layer over Claude Code / Cursor / etc. that keeps AI agents consistent with project-specific conventions instead of writing generic code every session.
prd.md) → Execute (code + check) →
Finish (capture + wrap). Full reference: .trellis/workflow.md..trellis/tasks/./trellis:continue — resume the current session's active task/trellis:finish-work — wrap up a finished task/trellis:start — session boot from scratch (not needed here; the
SessionStart hook does its job automatically)get_context.py and injects identity, git
status, session active task, active tasks, and workflow phase into the AI
conversation at every session start.<workflow-state> tag is auto-injected with every user message,
carrying the current task + phase hint./trellis:continue loads the Phase Index, reads prd.md + recent
activity, and routes to the right skill (trellis-brainstorm for planning,
trellis-implement for coding, trellis-check for verification).trellis-implement sub-agent is spawned when code needs to be written.
The platform hook reads {TASK_DIR}/implement.jsonl and auto-injects those
spec files + prd.md into the sub-agent's prompt so it codes per project
conventions.trellis-check sub-agent follows the same pattern with check.jsonl
— reviews changes against specs, auto-fixes issues, runs lint/typecheck.File layout (mention when they ask "where does what live"):
.trellis/.runtime/sessions/<session>.json — session active-task state, gitignored.trellis/tasks/<task>/{implement,check}.jsonl — per-task context manifests.trellis/spec/ — project-wide conventions (source of truth).trellis/workspace/codex/journal-*.md — their session log,
rotated at ~2000 lines.trellis/spec/ for them — what coding conventions this
specific team enforces..trellis/tasks/archive/ as a rhythm
example of how people actually work here. If archive is empty (the
project just started), skip this — don't invent examples..trellis/workspace/codex/ already exists — if yes, it's
their journal from another machine and worth mentioning.python ./.trellis/scripts/task.py list --assignee codex to
show tasks assigned to them. (Quote the name if it contains spaces.)If they want to practice before touching real work, offer to pick a tiny
P3 task or a typo fix and run the full cycle together: /trellis:continue
→ you implement via sub-agents → /trellis:finish-work.
When they feel oriented (or after you've covered the four topics with reasonable back-and-forth), guide them to run:
python ./.trellis/scripts/task.py finish
python ./.trellis/scripts/task.py archive 00-join-codex
"Welcome! Your trellis init set me up to onboard you to this project. I
can walk you through the workflow, show you the runtime mechanics under the
hood, summarize the team's spec, or jump to what you're already curious about
— which would you prefer?"