Files
eryao/.trellis/tasks/archive/2026-05/00-join-zl-q/prd.md
T
zl-q 04b493ed09 chore: migrate from opencode to trellis 0.5.0-rc.6
- Remove legacy .opencode/ directory and configuration
- Update .trellis/ to v0.5.0-rc.6 structure
- Refactor scripts: modularize common/, remove multi_agent/
- Add new common modules: git.py, io.py, log.py, types.py, etc.
- Update workflow.md and AGENTS.md
- Archive completed migration tasks
2026-05-06 14:29:25 +08:00

4.3 KiB

Joiner Onboarding Task

You (the AI) are running this task. The developer does not read this file.

zl-q 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.


Topics to cover (adapt order to their questions)

1. What Trellis is + the workflow

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.

  • Three phases: Plan (brainstorm → prd.md) → Execute (code + check) → Finish (capture + wrap). Full reference: .trellis/workflow.md.
  • Task lifecycle: planning → in_progress → done → archive, under .trellis/tasks/.
  • Core slash commands:
    • /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)

2. Runtime mechanics (explain when they ask "how does it know what to do")

  • SessionStart hook runs 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/zl-q/journal-*.md — their session log, rotated at ~2000 lines

3. This project's actual conventions

  • Summarize .trellis/spec/ for them — what coding conventions this specific team enforces.
  • Point at the last 5 entries in .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.
  • Not your job in this onboarding to teach them the business code itself — the README and their teammates handle that.

4. Their assigned work

  • Check if .trellis/workspace/zl-q/ already exists — if yes, it's their journal from another machine and worth mentioning.
  • Run python3 ./.trellis/scripts/task.py list --assignee zl-q to show tasks assigned to them. (Quote the name if it contains spaces.)
  • Remind them that the "My Tasks" section appears in the SessionStart context on every new session.

Optional: walk through a small task end-to-end

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.


Completion

When they feel oriented (or after you've covered the four topics with reasonable back-and-forth), guide them to run:

python3 ./.trellis/scripts/task.py finish
python3 ./.trellis/scripts/task.py archive 00-join-zl-q

Suggested opening line

"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?"